Пример #1
0
    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);
    }
Пример #2
0
    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));
    }