尝试在脚本中将孩子设置为我的游戏对象时发生错误
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 中为我的牌组生成卡片时出现随机错误