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

Stv*_*lam 2 c# transform unity-game-engine gameobject prefab

 public GameObject aiArrow;
 aiArrow.transform.parent = this.gameObject.transform;
Run Code Online (Sandbox Code Playgroud)

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

禁用设置驻留在预制资源中的变换的父级以防止数据损坏

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

小智 7

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

public Transform parentObject;
public GameObject prefab;

public void CreateObject()
{
   Instantiate(prefab, parentObject);
}
Run Code Online (Sandbox Code Playgroud)

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