我有一个带有 public boolean isIndestructible = true
属性的 Player 对象。我还有一个具有以下功能的 Mine 对象:
void OnCollisionEnter2D(Collision2D other) {
if (other.gameObject.CompareTag("Player") && !other.gameObject.isIndestructible) {
SceneManager.LoadScene("Game");
}
}
基本上,如果 Player 对象不是坚不可摧的,我只想重新加载游戏。但是这段代码不起作用(gameObject
没有 isIndestructible
作为属性),那么找到它的正确方法是什么?
最佳答案
I have a Player object with a public boolean isIndestructible = true property.
所以您已经将 MonoBehaviour
附加到 Player 对象,对吗?
Player.cs
using UnityEngine;
public class Player : MonoBehaviour
{
public bool isIndestructible {get; set;}
}
获取Mine
中的isIndestructible
属性,
void OnCollisionEnter2D(Collision2D other) {
var player = other.gameObject.GetComponent<Player>();
if(player != null && player.isIndestructible){
SceneManager.LoadScene("Game");
}
}
关于c# - 如何检查游戏对象是否具有特定属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49090793/