更改场景或关闭Unity之后,脚本不起作用

时间:2018-09-27 20:34:02

标签: unity3d

我有标题所暗示的问题。 我有一些门游戏对象,我附加了以下脚本以便通过raycast打开和关闭它们:

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        RaycastHit hit;
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit, 1000))
        {
            if (!EventSystem.current.IsPointerOverGameObject())   
            {
                if (hit.collider.gameObject.tag == "door")
                {                     
                   if (hit.collider.gameObject.GetComponent<Animator>().GetBool("ApritiSesamo") == true)
                    {
                        hit.collider.gameObject.GetComponent<Animator>().SetBool("ApritiSesamo", false);
                    }
                    else if (hit.collider.gameObject.GetComponent<Animator>().GetBool("ApritiSesamo") == false)
                    {
                        hit.collider.gameObject.GetComponent<Animator>().SetBool("ApritiSesamo", true);
                    }
                }
            }
        }
    }
}

该对象具有“ door”标签,在动画制作器中,我从Entry-->New state(an empty one)--->my door animation开始过渡。在动画师中,过渡箭头分别需要bool ApritiSesamo变为true才能执行“开门动画” ...和false返回空状态。

问题是直到我关闭团结或改变场景(然后回到该场景以再次尝试)这一切都有效。此外,我注意到如果我复制粘贴此门gameObject ...原始对象仍然无效但是该副本可以工作,直到我关闭Unity或更改场景ecc。

希望我已清楚地解释了所有内容,希望能对您有所帮助。 预先感谢。

0 个答案:

没有答案