我有一个Player对象,它有一个名为public boolean isIndestructible = true
的属性。我还有一个Mine对象,它有以下函数:
void OnCollisionEnter2D(Collision2D other) {
if (other.gameObject.CompareTag("Player") && !other.gameObject.isIndestructible) {
SceneManager.LoadScene("Game");
}
}
基本上,我只想在Player对象不是不可摧毁时重新加载游戏。 然而,这段代码不起作用(gameObject没有isIndestructible属性),所以有什么正确的方法可以找到它?
isDestructable
不是属性而是字段。话虽如此,将其作为属性并在接口中声明,该接口由具有此属性的所有类实现。 因此,您只需要检查对象是否来自此接口并使用接口的属性,例如var objectIsIndestructable = (other.gameObject as IHaveIsIndestructible)?.IsIndestructable
。 您可以使用反射,但这是不良设计。 - ckuriGetComponent
来获取与所需属性/字段/方法相关联的脚本。 - Draco18s no longer trusts SE