C# 尝试在脚本中将子对象设置为我的游戏对象时出错

C# 尝试在脚本中将子对象设置为我的游戏对象时出错,c#,error-handling,unity3d,monodevelop,gameobject,C#,Error Handling,Unity3d,Monodevelop,Gameobject,当我在游戏模式下测试游戏时,上面的代码生成了预期的结果,但是我收到了以下错误消息: “设置驻留在预制中的转换的父级将被禁用,以防止数据损坏。” 是的,spawnObject变量包含一个预置,但是创建一个新的GameObject应该已经解决了这个问题,我假设?检查您的“transform”变量是否来自GameObject而不是预置 GameObject enemy = Instantiate(spawnObject,spawnPosition,spawnObject.transform.rotat

当我在游戏模式下测试游戏时,上面的代码生成了预期的结果,但是我收到了以下错误消息:

“设置驻留在预制中的转换的父级将被禁用,以防止数据损坏。”

是的,spawnObject变量包含一个预置,但是创建一个新的GameObject应该已经解决了这个问题,我假设?

检查您的“transform”变量是否来自GameObject而不是预置

GameObject enemy = Instantiate(spawnObject,spawnPosition,spawnObject.transform.rotation) as GameObject;
enemy.transform.parent = transform;

也许你可以提供更多关于你的转换变量来自何处的信息。

我也看到了这个问题-一个实例化的游戏对象(不是预置)给出了这个错误消息。我的游戏对象(A)是另一个不同类型的实例化游戏对象(B)中间的父对象。我想把A重新租入B的另一部分——这将由于给定的错误而失败。我唯一的解决方案是先将A重新分配到null,然后再重新分配到B

var transform = somePrefab.transform;
enemy.transform.parent = transform; // this won't work

var transform = someOtherGameObject.transform;
enemy.transform.parent = transform; // this will