如何解决第二次实例化预制件时,为什么会出现错误?
禁用设置驻留在预制件中的转换的父级以防止数据损坏
当我第一次调用此脚本时,一切正常。有很多类似的问题和答案。但是,我无法解决他们的问题。
感谢您的帮助:)
GameObject coralWoodBundle = Resources.Load("Base/coral_wood_bundle") as GameObject;
GameObject woodlBundle = Instantiate(coralWoodBundle) as GameObject;
woodlBundle.transform.SetParent(this.gameObject.transform);
相关脚本
public class FallingWoodPackScript: MonoBehavIoUr
{
public List<FallingWoodScript> fallingWoodScripts;
public void Start()
{
RefillWood();
}
public void RefillWood()
{
GameObject coralWoodBundle = Resources.Load("Base/coral_wood_bundle") as GameObject;
GameObject woodlBundle = Instantiate(coralWoodBundle) as GameObject;
woodlBundle.transform.SetParent(this.gameObject.transform);
woodlBundle.transform.localPosition = new Vector3(1f,2.7f,0);
woodlBundle.transform.localRotation = Quaternion.Euler(new Vector3(0,-90));
fallingWoodScripts = new List<FallingWoodScript>();
foreach (Transform child in woodlBundle.transform)
{
fallingWoodScripts.Add(child.GetComponent<FallingWoodScript>());
}
}
}
解决方法
我很早以前就遇到了这个错误,我认为它的措辞有点误导。
也许您这样更好地理解它:
将父级设置为 TO 处于预制状态的转换被禁用,以防止数据损坏
我的猜测是,您通过脚本调用FallingWoodPackScript
或this
的{{1}}参考(= RefillWood
)实际上是 Prefab参考,因此Start
就是错误提示this.gameObject.transform
。
确保仅在场景中的实际实例上调用a transform which resides in a prefab
(或RefillWood
)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。