尝试将子项设置为脚本中的GameObject时发生错误

时间:2013-01-17 03:44:41

标签: c# error-handling unity3d monodevelop gameobject

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

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

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

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

2 个答案:

答案 0 :(得分:1)

检查你的“变换”变量是否实际来自游戏对象,而不是来自预制件。

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

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

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

答案 1 :(得分:0)

我也一直在看这个问题 - 一个实例化的GameObject(不是预制件)给出了这个错误信息。我的GameObject(A)已经成为另一个实例化的不同类型的GameObject(B)的中间人物。我想将A重新演绎到B的另一部分 - 这会因给定的错误而失败。我唯一的解决方案是首先将A重新表示为null,然后再次重新表示为B.