63 lines
1.9 KiB
C#
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;
|
|
}
|
|
} |