我正在使用 C# 开发 Unity3d 游戏,我们有很多情况需要int health
访问GameObject
. 我们使用如下代码执行此操作:
GameObject obj;
if(obj.GetComponent<Player>() != null) {
obj.GetComponent<Player>().health--;
}
else if(obj.GetComponent<Robot>() != null) {
obj.GetComponent<Robot>().health--;
}
// more painful code
我想做的是让所有这样的类实现一个类似的接口IHealth
,然后做obj.GetComponent<IHealth>().health--;
. 不过,这可能吗?我环顾四周,似乎我不能将接口用作类型参数。