【发布时间】:2016-12-13 23:14:01
【问题描述】:
我正在使用 C# 在 Unity 中进行塔防式开发。 所以,我有一个塔的抽象类,它有一个 int 的范围、射速等。 然后我有一些针对不同类型塔的子类。 我怀疑在塔类中有一个 GameObject 类型的属性,它包含塔游戏对象本身(用于产生射弹,必要时移动塔)或具有属性的类,然后有一个控制器来控制塔类属性并控制游戏对象本身(何时需要移动它,设置是否激活等)。
我希望我能说清楚! 谢谢!
编辑
我不确定哪个选项会更好。
选项 1:
public abstract class Tower{
private int health;
...
private GameObject object;
public HealthDown(){
if(health >1){ health -= 1;}
else { object.SetActive(false);}
}
}
选项 2:
public abstract class Tower{
private int health;
...
public HealthDown(){
if(health >1){ health -= 1;}
}
}
然后是控制塔的脚本:
public class Controller : MonoBehaviour {
Tower tower;
...
void Update(){
if(tower.health <= 1){this.gameObject.SetActive(false);}
}
}
我希望现在更清楚!
谢谢!
【问题讨论】:
-
object与gameObject有何不同? -
对象与游戏对象相同。在第一个选项中,我将从类 Tower 的构造函数中获取对象。在第二个选项中,我将从脚本中获取游戏对象,控制器将附加到游戏对象本身
标签: unity3d