我有标题所暗示的问题。 我有一些门游戏对象,我附加了以下脚本以便通过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。
希望我已清楚地解释了所有内容,希望能对您有所帮助。 预先感谢。