【发布时间】:2019-11-16 12:40:19
【问题描述】:
我正在考虑检查 GameObject 是否为 Enemy 的最佳方法。我可以使用 CompareTag 方法来检查它是否是“Enemy”或尝试获取组件,例如“EnemyController”,但我很困惑。 您能告诉我在 Unity 中执行此类操作的最有效方法是什么吗?
感谢您的回复。
【问题讨论】:
-
如果你需要对脚本做一些事情(造成伤害),无论如何都需要getComponent。否则使用标签,标签非常快。如果是哪个组件的问题,我建议使用接口或超类,这样你就可以完全跳过这个决定。
-
我听说使用 tags==strings 并不是一个好主意,因为垃圾。因此,如果我想例如检查单击的 GO 是敌人还是其他东西并造成损坏或其他操作,我应该尝试 GetComponent(如果 null 做其他事情)还是检查标签。
-
CompareTag。就垃圾而言,所有局部变量基本上都贡献了零垃圾,无论是否为字符串。
标签: c# unity3d game-development