如何避免在屏幕上创建GameObject?

时间:2015-02-04 13:56:51

标签: unity3d

我使用c#从Unity中的敌人GameObject实例化敌人(Clones)。我已经编写了一个destroy函数来在子弹击中时仅删除敌人(Clones)。 Unity在屏幕上呈现敌人GameObject。

我无法在运行时销毁这个GameObject,因为unity不会再实例化任何敌人(Clones)。请帮助我不要渲染基础敌人GameObject,因为它在屏幕上没有用处。

注意:敌人的脚本是走向玩家位置,因此将对象保持在屏幕外是没有意义的。 请帮忙

这是我的代码片段。我将敌人GameObject拖入项目部分。现在它已经在屏幕上创建了2个Enemy对象

public Rigidbody2D enemy;
void enemySpawn()
{
    Rigidbody2D enemyInstance;
    enemyInstance = Instantiate(enemy, new Vector3(Random.Range (2,8), Random.Range (-4,4), 0), Quaternion.Euler(new Vector3(0,0,0))) as Rigidbody2D;   
}

1 个答案:

答案 0 :(得分:2)

让你的敌人进入prefab这可以通过将gameObject拖入项目视图来完成。

您可以使用任何gameObject从预制件中实例化新敌人。例如,没有任何渲染组件的空的。

实例化可以使用这种脚本完成:

   public GameObject enemy;
   void InstantiateEnemy () {
      GameObject enemyClone= (GameObject) Instantiate(enemy, transform.position, transform.rotation);
   }

只需在编辑器中设置public GameObject,然后从某处调用InstantiateEnemy函数。