우선 질문이 너무 사소한 경우 용서해주십시오. 그 이유는 내가 Unity에서 새롭기 때문이며 문서를 작성하는 데 어려움이 있습니다. 내가 원하는 것은 캐릭터를 한 위치에서 다른 움직이는 애니메이션으로 이동시키는 것입니다. 애니메이션은 컨트롤러 애니메이션 "Animator"를 통해 시작됩니다. 문제는 애니메이션을 시작하기위한 트리거를 실행하면 캐릭터가 이전 애니메이션을 멈추게하지 않아서 내가 묻는 애니메이션을 수행 할 때 결과가 동기화 해제됩니다. 캐릭터가 당시의 애니메이션으로 움직이기 시작합니다. 나는 많은 것을 시도했지만 문제를 찾을 수 없습니다. 내가이 "Animator"가 애니메이션을 끝내고 원하는 애니메이션을 실행하도록 할 수 있습니까?
을이 드 코드입니다 :
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;
}
}
}
그것이 내가 원하는 애니메이션을 어떤 애니메이션을 종료하고 실행하기 위해 "애니메이터을"강제로 가능 이 애니메이터 수있다?
미리 도움 주셔서 감사합니다.이 문제에 대해 저에게 줄 수 있습니다.