将游戏对象实例化为 Child

Instantiate a gameobject as Child

我正在使用 Unity 开发 2D UI 应用程序,但我遇到了问题。 我正在编写脚本来实例化我的弹出窗口 window(我制作了一个预制件)。我成功了,但后来 Unity 崩溃了,我不得不重做我的场景(忘了按 ctrl+s) 自从这次崩溃以来,我的弹出窗口没有实例化为 canvas 的子窗口,我收到了这条消息: "Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption"

这是我的脚本:

using UnityEngine;
using System.Collections;

public class Popup : MonoBehaviour
{
    public RectTransform popupPrefab;
    private Animator anim;

    // Use this for initialization
    void Start()
    {
        //get the animator component
        anim = popupPrefab.GetComponent<Animator>();
        //disable it on start to stop it from playing the default animation
        anim.enabled = false;
    }

    public void CreatePopup()
    {
        // Copie du prefab
        RectTransform newPopup = Instantiate(popupPrefab, popupPrefab.transform.position, popupPrefab.transform.rotation) as RectTransform;
        newPopup.transform.SetParent(transform, false);

        //anim = newPopup.GetComponent<Animator>();
        //anim.enabled = true;
        //anim.Play("Popup");
    }

    public void ClosePopup()
    {
        anim.enabled = true;
        anim.Play("ClosePopup");
    }
}

我不明白为什么会出现此错误,因为它在崩溃前工作正常...

如果你有什么想法 谢谢

我通过从头开始重新做我的项目解决了这个问题...