Есть объект
Character
, для него я написал условия с анимациями:
RB.MovePosition(RB.position + moveVelocity * Time.fixedDeltaTime);
if (Input.GetAxisRaw("Vertical") > 0)
{
ChangeAnimation("Player_walk_forward");
isWalkForward = true;
isStoped = false;
}
if (Input.GetAxisRaw("Vertical") < 0)
{
ChangeAnimation("Player_walk_back");
isWalkBackward = true;
isStoped = false;
}
if (Input.GetAxisRaw("Horizontal") > 0)
{
gameObject.transform.localScale = new Vector3(57.6f, 57.6f, 57.6f);
ChangeAnimation("Player_walk");
isWalkRight = true;
isStoped = false;
}
if (Input.GetAxisRaw("Horizontal") < 0)
{
gameObject.transform.localScale = new Vector3(-57.6f, 57.6f, 57.6f);
ChangeAnimation("Player_walk");
isWalkLeft = true;
isStoped = false;
}
if (Input.GetAxisRaw("Vertical") == 0 && Input.GetAxisRaw("Horizontal") == 0)
{
isStoped = true;
}
// ++
if (isWalkForward == true && isStoped == true)
{
ChangeAnimation("Player_idle_back");
isWalkForward = false;
}
if (isWalkBackward == true && isStoped == true)
{
ChangeAnimation("Player_idle");
isWalkBackward = false;
}
if (isWalkRight == true && isStoped == true)
{
ChangeAnimation("Player_idle_right");
isWalkRight = false;
}
if (isWalkLeft == true && isStoped == true)
{
ChangeAnimation("Player_idle_right");
isWalkLeft = false;
}
(Я новичок, возможно это выглядит не идеально, но оно работает ;) )
При проверки ходьбы, я заметил, что по координате
Z, персонаж ходит с двумя анимациями
Player_walk
и
Player_idle
, так как он якобы имеет статус
isStoped = true;
:
Как отследить передвижение по этой координате и включить нужную анимацию?