尝试在脚本中将孩子设置为我的游戏对象时发生错误

Posted

技术标签:

【中文标题】尝试在脚本中将孩子设置为我的游戏对象时发生错误【英文标题】:An error occurs when trying to set a child to my GameObject in script 【发布时间】:2012-12-31 13:38:33 【问题描述】:
GameObject enemy = Instantiate(spawnObject,spawnPosition,spawnObject.transform.rotation) as GameObject;
enemy.transform.parent = transform;

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于尝试在脚本中将孩子设置为我的游戏对象时发生错误的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中为我的牌组生成卡片时出现随机错误

当前页面脚本发生错误怎么办

UWP 尝试保留应用名称时发生意外错误

使用字符串 Unity 从游戏对象获取脚本

当我正在尝试为我正在通过Unity开发的游戏构建apk文件时,Android SDK未正确安装错误?

收到错误“您必须首先在孩子的父母上调用removeView()”