1

我有两个脚本。第一个脚本 BallControl 附加在 GameObject 上。第二个脚本英雄附加在其他游戏对象上。当我尝试将值 Hero 传递给 BallControl 时,我收到一条错误消息:“NullReferenceException:对象引用未设置为对象的实例” 如何解决此问题或如何将附加在对象上的值脚本传递给其他脚本附着在其他物体上?谢谢你的时间。

using UnityEngine;
using System.Collections;

public class BallControl : MonoBehaviour {

    public int life = 0;
    public GameObject hero;

    void Update () {

        Hero obj = GetComponent<Hero>();
        life = obj.lifeBall; 
        if(life==20){
            print("GameOver");
        }   
    }
}

//

using UnityEngine;
using System.Collections;

public class Hero : MonoBehaviour {

    public int lifeBall = 0;
    public GameObject ball;

    void Update () {
        lifeBall++;
    }

}
4

1 回答 1

3

正如您所说,Hero它附加到另一个游戏对象,您需要从另一个对象获取引用。假设GameObject hero是一个包含Hero组件,而不是你需要的:

        Hero obj = hero.GetComponent<Hero>();

确保您已将 hero 的游戏对象拖到hero控球游戏对象的成员上。

public Hero hero无论如何,如果你声明而不是public GameObject hero将英雄的游戏对象拖到它上面,生活会更轻松。比你不需要打电话GetComponent,但可以直接使用它。

于 2013-07-19T13:49:32.313 回答