我是新来安装统一5.我有下面的代码的一些问题:如何将Unity 4的代码转换为Unity 5?
void OnTriggerEnter(Collider other) {
var air = other.collider.gameObject.GetComponent<DamageManager>();
if(air){
air.HP += HPFill;
}
}
我是新来安装统一5.我有下面的代码的一些问题:如何将Unity 4的代码转换为Unity 5?
void OnTriggerEnter(Collider other) {
var air = other.collider.gameObject.GetComponent<DamageManager>();
if(air){
air.HP += HPFill;
}
}
更换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;
}
}
其他已经是对撞机组分和组件具有GetComponent构件方法所以无需达到为游戏对象。 – Everts
我知道这是事实。我翻译了他在Unity 5中所看到的内容。other.GetComponent
var air = other.GetComponent<DamageManager>();
在你的代码对撞机实际上是多余的因为其他已经是对撞机组件。这就像要求参考文件达到自己。也不需要使用gameObject引用,因为Collider是一个Component,然后包含一个GetComponent方法。
团结的新版本中删除所有组件的参考,但变换和游戏对象,因为他们总是在那里。
所以什么问题?控制台中的任何错误? –
@PawełMarecki:错误:'UnityEngine.Component.collider”已过时:'物业对撞机已被弃用。改用GetComponent()。 (UnityUpgradable)” –
那么,为什么你不使用'GetComponent()'呢? –