Код: Выделить всё
using UnityEngine;
public class SkeletonMoveState : SkeletonGroundedState
{
public SkeletonMoveState(EnemyStateMachine stateMachine, Enemy enemy, string animBoolName, Enemy_Skeleton enemySkeleton)
: base(stateMachine, enemy, animBoolName, enemySkeleton)
{
}
public override void Enter()
{
base.Enter();
}
public override void Update()
{
base.Update();
enemySkeleton.SetVelocity(enemySkeleton.moveSpeed * enemySkeleton.facingDirection, rb.linearVelocity.y);
if (enemySkeleton.IsWallDetected() || !enemySkeleton.IsGroundedDetected())
{
enemySkeleton.Flip();
stateMachine.ChangeState(enemySkeleton.idleState);
}
}
public override void Exit()
{
base.Exit();
}
}
< /code>
Я не использую вращение замораживания. Это работает, мой объект движется, но это вращение меняется. Когда я использую вращение замораживания и setVelocity ()
public void SetVelocity(float xVelocity, float yVelocity)
{
rb.linearVelocity = new Vector2(xVelocity, yVelocity);
FlipController(xVelocity);
}
< /code>
Я пытаюсь передавать скорость вручную, и мой скелет движется. Но это все еще останавливается после немного движения.
Подробнее здесь: https://stackoverflow.com/questions/794 ... -rigidbody