首页 > 解决方案 > 更改场景或关闭 Unity 后脚本不起作用

问题描述

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

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

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

问题是这一切都有效,直到我关闭统一或更改场景(并回到这个场景再试一次)。另外,我注意到如果我复制粘贴这个门游戏对象......原来的仍然没有工作,但副本在我关闭 Unity 或更改场景 ecc 之前一直有效。

希望我解释清楚,并希望得到一些帮助。提前致谢。

标签: unity3d

解决方案


推荐阅读