public override void Move(Vector2 direction) { var forward = CurrentFacing.ToVector3XZ(); var right = Vector3.Cross(Vector3.up, forward).ToVector2XZ().normalized; var relativeDir = new Vector2(Vector2.Dot(direction, right), Vector2.Dot(direction, CurrentFacing.normalized)); GetComponent <PlayerActionManager>().Move(relativeDir); }
public override void Move(Vector2 direction) { if (direction.magnitude <= 0.01) { Entity.GetComponent <SimpleActionManager>().Move(new Vector2(0, 0)); return; } var forward = CurrentFacing.ToVector3XZ(); var right = Vector3.Cross(Vector3.up, forward).ToVector2XZ().normalized; var relativeDir = new Vector2(Vector2.Dot(direction, right), Vector2.Dot(direction, CurrentFacing.normalized)); TurnTo(direction); Entity.GetComponent <SimpleActionManager>().Move(new Vector2(0, 1)); }