C# Unity3D门打开/关闭错误

C# Unity3D门打开/关闭错误,c#,unity3d,animation,C#,Unity3d,Animation,我的项目有问题。我创建了一个打开门的动画,并在按下按钮时将其打开。然后我复制了动画并输入其值-1,使门在2秒后关闭,但是如果角色在播放关闭动画时再次按下“门打开”按钮,它将播放该动画,这将导致游戏中出现错误。我很抱歉告诉你一点复杂的事情。我在等你的回答。这是我的代码-> public Text text; public Animator anim; private void Start() { text.enabled = false; anim = GetComponent&

我的项目有问题。我创建了一个打开门的动画,并在按下按钮时将其打开。然后我复制了动画并输入其值-1,使门在2秒后关闭,但是如果角色在播放关闭动画时再次按下“门打开”按钮,它将播放该动画,这将导致游戏中出现错误。我很抱歉告诉你一点复杂的事情。我在等你的回答。这是我的代码->

public Text text;
public Animator anim;

private void Start()
{
    text.enabled = false;
    anim = GetComponent<Animator>();
}

private void Update()
{
    if(text.enabled && Input.GetKeyDown(KeyCode.E))
    {
        anim.Play("DoorOpen");
    }
}
private void OnTriggerExit(Collider other)
{
    text.enabled = false;
}
private void OnTriggerEnter(Collider other)
{
    text.enabled = true;
}
公共文本;
公共动画;
私有void Start()
{
text.enabled=false;
anim=GetComponent();
}
私有void更新()
{
if(text.enabled&&Input.GetKeyDown(KeyCode.E))
{
动漫游戏(“开门”);
}
}
私有无效OnTriggerExit(碰撞器其他)
{
text.enabled=false;
}
专用空对撞机(对撞机其他)
{
text.enabled=true;
}

}

您不应该使用Animator Play()方法,而应该创建参数,如触发器。。好。。。触发动画

另外,你没有说你得到了什么错误,所以很难帮助你,但我猜动画正在重新启动?您可以进行设置,使动画无法转换为自身,以便在完成之前再次触发动画时不会重新启动。编辑AnimatorController资源,并单击不应转换为自身的动画,然后取消选中其确切显示“可以转换为自身”的位置。(也许你必须双击它,也许你必须点击转换,现在真的不记得了,你会发现:))