Files
project-reset/Assets/Scripts/Player/ResolvedMovement.cs

63 lines
1.9 KiB
C#

using Reset.Core.Tools;
using Sirenix.OdinInspector;
using UnityEngine;
namespace Reset.Units{
public class ResolvedMovement{
public struct MoveDirection{
private Transform owner;
private Vector2 _moveRaw;
private Vector2 _moveDir; // Always world??
[ShowInInspector]
public Vector2 World{
get{
DebugOverlayDrawer.ChangeValue("Movement", "_moveDir", _moveDir);
// return owner.TransformDirection(_moveDir.ToVector3()).ToVector2();
return _moveDir;
}
set{
_moveDir = value;
}
}
[ShowInInspector]
public Vector2 Local{
get => owner.InverseTransformDirection(_moveDir.ToVector3()).ToVector2();
private set {
// _moveDir = value;
}
}
public Vector2 RawWorld{
get{
DebugOverlayDrawer.ChangeValue("Movement", "_moveRaw", _moveRaw);
// return owner.TransformDirection(_moveDir.ToVector3()).ToVector2();
return _moveRaw;
}
set{
_moveRaw = value;
}
}
public Vector2 RawLocal{
get => owner.InverseTransformDirection(_moveRaw.ToVector3()).ToVector2();
}
public MoveDirection(Transform ownerTransform){
owner = ownerTransform;
_moveDir = Vector2.zero;
_moveRaw = Vector2.zero;
}
}
[ShowInInspector] public MoveDirection moveDirection;
public float moveSpeed;
public Quaternion rotation;
public float rotationSpeed;
public float gravity;
}
}