Can Transition To Self는 애니메이션 상태가 자기 자신으로 전이(Transition)할 수 있는지를 설정하는 것
- 이게 켜져있어서 대쉬 애니메이션이 꼬였음. 왜꼬였지..?
현재 진행중인 애니메이션 클립의 절대적 시간을 알 수 없음 대신 normalized된 시간을 알 수 있음
- Animator.GetCurrentAnimatorStateInfo(0).normalizedTime을 활용.
if (stateMachine.Character.Animator.GetCurrentAnimatorStateInfo(0).IsTag(skill.GetAnim()))
{
normalizedTime = stateMachine.Character.Animator.GetCurrentAnimatorStateInfo(0).normalizedTime;
if (normalizedTime < 0.2f)
{
stateMachine.Player.ForceReceiver.AddForce(stateMachine.Player.transform.forward * 0.7f);
}
if (normalizedTime >= 1f)
{
stateMachine.ChangeState(stateMachine.Player.StateMachine.IdleState);
}
}
상태머신에 위와 같이 활용.
AnyState에서 시작하는 애니메이션을 bool값으로 진입하게하면 상태에 반복해서 진입하는 문제가 있음.
- anystate에서 시작하는 애니메이션은 trigger로 실행되는 애니메이션을 사용.
'Unity&C#' 카테고리의 다른 글
[Unity] Canvas Component (0) | 2024.12.23 |
---|---|
[Unity] Character Controller & Rigidbody (0) | 2024.12.02 |
StateMachine / Behaviour Tree (0) | 2024.11.25 |
[Unity] DrawGizmo (0) | 2024.11.18 |
CSVtoScriptableObject (0) | 2024.10.30 |