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

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

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

是的,spawnObject 变量包含一个预制件,但是我认为创建一个新的 GameObject 应该可以解决问题?

4

2 回答 2

2

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

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

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

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

于 2013-01-17T08:57:40.247 回答
0

我也看到了这个问题——一个实例化的游戏对象(不是预制件)给出了这个错误消息。我的游戏对象 (A) 已成为另一个不同类型的实例化游戏对象 (B) 的父级。我想将 A 重新设置为 B 的另一部分 - 这将因给定错误而失败。我唯一的解决方案是首先将 A 重新设置为 null,然后再次重新设置为 B。

于 2014-04-24T20:16:06.747 回答