gpt4 book ai didi

unity-game-engine - 是否可以强制 "Animator"结束任何动画并执行我想要的任何动画?

转载 作者:行者123 更新时间:2023-12-02 16:01:29 33 4
gpt4 key购买 nike

首先,如果我的问题太琐碎,请原谅我,那是因为我是 Unity 的新手,而且我在获取文档方面遇到了一些困难。我想要的是将角色从一个位置移动到另一个运行动画行走。动画通过 Controller 动画“Animator”启动。问题是,当我启动触发器来启动动画时,角色不会停止上一个动画来执行我要求的动画,这会导致不同步:角色开始随着当时的动画移动。我尝试了很多方法,但找不到问题所在。这是五月动画师: enter image description here

这是我的代码:

enum AnimTriger {IdleTrigger, SpawnTrigger, RunTrigger, AttackTrigger, DeadTrigger, VictoryTrigger };
public class CharacterController : MonoBehaviour {
private GameObject target, origin;
private bool isWalking = false;
private bool isMele = false;
private GameObject instigator;



public void goAndAttack(GameObject instigator, GameObject target,GameObject origin, bool mele)
{
this.target = target;
this.origin = origin;
this.instigator = instigator;
isMele = mele;
StartCoroutine(AttackAction());

}

private IEnumerator AttackAction()
{
Animator anim = instigator.GetComponent<Animator>();

yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length);
if (isMele)
{
anim.SetTrigger(AnimTriger.RunTrigger.ToString());
yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length);
isWalking = true;
while (isWalking)
{
yield return new WaitForFixedUpdate();
}
yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length);

}

anim.SetTrigger(AnimTriger.AttackTrigger.ToString());
if (isMele)
{
anim.SetTrigger(AnimTriger.RunTrigger.ToString());
target = origin;
yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length);
isWalking = true;
while (isWalking)
{
yield return new WaitForFixedUpdate();
}
yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length);
}
anim.SetTrigger(AnimTriger.IdleTrigger.ToString());

}

void Update () {
if (isWalking && isMele)
{
instigator.transform.position = Vector3.MoveTowards(instigator.transform.position, target.transform.position, 0.1f);
isWalking = instigator.transform.position != target.transform.position;
}


}


}

是否可以强制“动画师”结束任何动画并执行我想要的任何动画?
预先感谢您就这个问题给我的任何帮助

最佳答案

答案很简单,只需取消选中“原子”复选框即可中断动画 enter image description here

关于unity-game-engine - 是否可以强制 "Animator"结束任何动画并执行我想要的任何动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26515523/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com