将游戏对象实例化为Child

时间:2016-03-07 17:18:44

标签: c# unity3d instantiation

我正在使用Unity开发2D UI应用程序,但我遇到了问题。 我正在编写脚本来实例化我的弹出窗口(我制作了一个预制件)。我成功但后来Unity崩溃了,我不得不重做我的场景(忘了按Ctrl + s) 自从这次崩溃以来,我的弹出窗口没有实例化为我的画布的一个孩子,我收到了这条消息: “禁用驻留在预制件中的转换的父级以防止数据损坏”

这是我的剧本:

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");
    }
}

我不明白为什么我有这个错误,因为它在崩溃之前工作正常......

如果您有任何想法 谢谢

1 个答案:

答案 0 :(得分:0)

我从一开始就重新做项目来解决问题...