微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

第二次实例化预制件时,为什么会出现错误?

如何解决第二次实例化预制件时,为什么会出现错误?

当我尝试向实例化的游戏对象添加预制时,出现错误

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

当我第一次调用此脚本时,一切正常。有很多类似的问题和答案。但是,我无法解决他们的问题。

感谢您的帮助:)

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 处于预制状态的转换被禁用,以防止数据损坏

我的猜测是,您通过脚本调用FallingWoodPackScriptthis的{​​{1}}参考(= RefillWood)实际上是 Prefab参考,因此Start就是错误提示this.gameObject.transform

确保仅在场景中的实际实例上调用a transform which resides in a prefab(或RefillWood)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。