我正在进行一场无尽的射击游戏,子弹只是一个前进的物体,直到碰到它为止。
敌人都有一个带HP的脚本。
我想知道这样做是否昂贵:
void OnCollisionEnter2D(Collision2D collision) {
if(TagsAndHashes.IsTagEnemy(collision.transform.tag))
DamageHandler.CauseDamage(collision.gameObject.GetComponent<EnemyBehavior>());
}else{
pool.ReturnObject(gameObject);
}
这样每次玩家射击敌人时我都会调用GetComponent<EnemyBehavior>()
。
太贵了还是没事?
该游戏适用于移动设备。
感谢。
答案 0 :(得分:4)
在这里翻转负责造成损害的人会更合乎逻辑,成本更低。
这样,脚本不必去获取另一个对象的引用,这当然是昂贵的。相反,它只是跟自己说话......就像我一样。
希望它有所帮助。