using Sirenix.OdinInspector; using UnityEngine; namespace Reset.Units{ public class ResolvedMovement{ public struct MoveDirection{ private Transform owner; private Vector2 _moveDir; // Always local public Vector2 World{ get => owner.TransformDirection(_moveDir); set{ _moveDir = owner.InverseTransformDirection(value); } } public Vector2 Local{ get => _moveDir; set { _moveDir = value; } } public MoveDirection(Transform ownerTransform){ owner = ownerTransform; _moveDir = Vector2.zero; } } [ShowInInspector] public MoveDirection moveDirection; public float moveSpeed; public Quaternion rotation; public float rotationSpeed; public float gravity; } }