如何将代码从Unity 4转换为Unity 5?

时间:2016-03-09 10:45:00

标签: c# unity3d unityscript unity5

我是安装Unity 5的新手。我在以下代码中遇到了一些问题:

void OnTriggerEnter(Collider other) {
        var air = other.collider.gameObject.GetComponent<DamageManager>();
        if(air){
            air.HP += HPFill;   
        }
    }   

2 个答案:

答案 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始终存在。