我有两个脚本。第一个脚本BallControl附加在GameObject上。第二个脚本Hero附加在其他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++;
}
}
答案 0 :(得分:3)
正如您所说,Hero
附加到另一个游戏对象,您需要从另一个对象获取引用。假设GameObject hero
是包含Hero
组件的组件,而不是您需要的组件:
Hero obj = hero.GetComponent<Hero>();
确保您已将英雄的游戏对象拖至控球游戏对象的成员hero
。
无论如何,如果你声明public Hero hero
而不是public GameObject hero
并将英雄的游戏对象拖到它上面,生活会更容易。比你不需要拨打GetComponent
但可以直接使用它。