如何避免在屏幕上创建游戏对象?

How to avoid creating the GameObject on screen?

我正在使用 C# 在 Unity 中从敌人游戏对象实例化敌人(克隆)。我写了一个 destroy 函数,当子弹击中他们时只删除敌人(克隆人)。 Unity 在屏幕上渲染敌方游戏对象。

我不能在运行时销毁这个游戏对象,因为 unity 不会再实例化任何敌人(克隆人)。请帮助我不要渲染基础敌人游戏对象,因为它在屏幕上没有任何用处。

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

这是我的代码片段。我将敌人的游戏对象拖到项目部分。现在它在屏幕上创建了 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;   
}

让你的敌人进入 prefab 这可以通过将游戏对象拖到项目视图中来完成。

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

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

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

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