将预制件统一设置为另一个游戏对象的子对象

Setting a prefab as child of another game object in unity

 public GameObject aiArrow;
 aiArrow.transform.parent = this.gameObject.transform;

当我尝试将预制件设置为另一个对象的子对象时,出现以下错误。

Setting the parent of a transform which resides in a Prefab Asset is disabled to prevent data corruption

如何将此“aiArrow”预制件设置为另一个游戏对象的子对象。

您可以直接在 Instantiate() 函数调用中执行此操作。

public Transform parentObject;
public GameObject prefab;

public void CreateObject()
{
   Instantiate(prefab, parentObject);
}

方法Instantiate有几个重载,您可以在其中指定一个父对象。这是最简单的例子。重要的!上面的例子不修改位置或旋转。它的作用就像您将一个游戏对象拖放到另一个游戏对象下方的 Hierarchy 中一样。请参阅 Instatiate 了解您需要的过载。