我是安装Unity 5的新手。我在以下代码中遇到了一些问题:
void OnTriggerEnter(Collider other) {
var air = other.collider.gameObject.GetComponent<DamageManager>();
if(air){
air.HP += HPFill;
}
}
答案 0 :(得分:1)
将var air = other.collider.gameObject.GetComponent<DamageManager>()
替换为 var air = other.GetComponent<Collider>().gameObject.GetComponent<DamageManager>();
void OnTriggerEnter(Collider other)
{
var air = other.GetComponent<Collider>().gameObject.GetComponent<DamageManager>();
if (air)
{
air.HP += HPFill;
}
}
答案 1 :(得分:1)
var air = other.GetComponent<DamageManager>();
代码中的对撞机实际上是多余的,因为其他对象已经是对撞机组件。这就像要求引用达到自己。并且无需使用gameObject引用,因为Collider是一个Component,然后包含一个GetComponent方法。
Unity的新版本正在删除所有组件引用,但转换和gameObject始终存在。