以下是Unity 3D中的C#代码:
private List<IEnemy> Enemies;
void Start () {
soldier = OT.AnimatingSprite("PlayerAnimatingSprite");
Bomber bomber = new Bomber(soldier);
Enemies.Add(bomber as IEnemy);
}
void Update () {
ProcessEnemies();
}
void ProcessEnemies()
{
foreach(IEnemy enemy in Enemies)
{
enemy.Move();
}
}
当我在上面的代码中实例化Bomber时,我也收到以下警告: “您正在尝试使用'new'关键字创建MonoBehavior。这是不允许的.MonoBehaviors只能使用AddComponent()添加。”
答案 0 :(得分:5)
敌人对象尚未初始化
private List<IEnemy> Enemies = new List<IEnemy>();
答案 1 :(得分:3)
AnteSim的答案解决了一个问题,但你得到的实际错误来自于试图在Bmber上调用'new',我认为它是GameObject或MonoBehaviour组件。
如果轰炸机是一个组成部分:
Bomber b = gameObject.AddComponent<Bomber>();
Enemies.Add(b);
如果Bomber是GameObject:
GameObject b = Instantiate(Bomber, Vector3.zero, Quaternion.identity) as GameObject;
Enemies.Add(b);