【问题标题】:Setting a prefab as child of another game object in unity统一将预制件设置为另一个游戏对象的子对象
【发布时间】:2021-10-24 12:04:22
【问题描述】:
 public GameObject aiArrow;
 aiArrow.transform.parent = this.gameObject.transform;

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

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

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

【问题讨论】:

  • 您的预制游戏对象何时实例化?
  • 你可能想在你的场景中设置一个 instantiated 对象的父对象......而不是预制的 asset ;)

标签: c# unity3d transform gameobject prefab


【解决方案1】:

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

public Transform parentObject;
public GameObject prefab;

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2022-07-17
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多