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

标签 c# unity3d transform gameobject prefab

 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对于您需要的过载。

关于c# - 将预制件统一设置为另一个游戏对象的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68904442/

相关文章:

c# - 基于Word存储Word行数和频率

c# - 铿锵错误 : Linker Command Failed for Unity in Native

client-server - Unity3d 服务器自动发现,仅限局域网

c# - 强制模式仅适用于 Y 轴 Unity3D

mysql - 像 mysql 问题中那样转换和转换

javascript - 如何用JavaScript访问CSS3的 "transform"属性?

c# - 托管环境中使用的最大堆? (.net/java)

c# - WPF 路径以某种大小消失

c# - 使用 vector3.MoveTowards 移动对象

css - 3D CSS 变换 - 变换 :rotateX(180deg);