【发布时间】:2015-08-02 19:44:41
【问题描述】:
我想在 Unity 中创建一些游戏,我首先创建了一个类层次结构,以便能够使用多态性。所以我创建了一些接口,其中包含方法和变量。
正如C# interfaces documentation 中所说,我已经使用这样的变量创建了我的界面
public interface IUnit : ISelectable {
int healthPoint { get; set; }
bool isIndestructible { get; set; }
/******************************/
void takeDamage(int dmg);
void die();
}
现在,我正在一个类中实现我的接口:
[System.Serializable]
public class BasicUnit : MonoBehaviour, IUnit {
private int _healthPoint;
public int HealthPoint { get { return (_healthPoint); } set { _healthPoint = value; } }
private bool _isIndestructible;
public bool isIndestructible { get { return (_isIndestructible); } set { _isIndestructible = value; } }
public void takeDamage (int dmg)
{
if (this.isIndestructible == false) {
this.HealthPoint -= dmg;
if (this.HealthPoint <= 0) {
die();
}
}
}
public void die()
{
Destroy(gameObject);
}
}
我的问题是我的变量healthPoint 和isIndestructible 没有显示在 Unity 的检查器中,尽管它们是公共变量。我尝试过使用[System.Serializable],但它不起作用。
我的问题很简单,我应该如何在 Unity 的检查器中显示我继承的变量?
注意:我正在尝试编写漂亮且可读的代码,所以如果可能的话,我想将我的 IUnit 类保留为接口,并将我的变量保留在我的 IUnit 中。
【问题讨论】: