diff options
Diffstat (limited to 'AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs')
-rw-r--r-- | AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs index db52445..b1fdefe 100644 --- a/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs @@ -91,16 +91,35 @@ public class TopDownTransform : MonoBehaviour } } + // 地表坐标(Topdown空间) + public Vector3 positionOnGround + { + set + { + Vector3 pos = position; + pos.x = value.x; + pos.y = value.y; + position = pos; + Project(); + } + get + { + Vector3 pos = position; + pos.z = 0; + return pos; + } + } + /// <summary> /// “投影”,把坐标转换到Transform上 /// </summary> public void Project() { - Vector3 pos = transform.position; + Vector3 pos = transform.localPosition; pos.x = m_LocalPosition.x; pos.y = m_LocalPosition.y + m_LocalPosition.z; - transform.position = pos; + transform.localPosition = pos; } private void Start() @@ -118,23 +137,29 @@ public class TopDownTransform : MonoBehaviour Project(); } + #region 转换到3D笛卡尔空间 public Vector3 Get3DPosition() { Vector3 pos = new Vector3(); pos.x = m_LocalPosition.x; pos.y = m_LocalPosition.y + m_LocalPosition.z; - pos.z = transform.position.z; + pos.z = transform.localPosition.z; return pos; } + /// <summary> + /// 注意是在3D空间下 + /// </summary> + /// <returns></returns> public Vector3 GetGround3DPosition() { Vector3 pos = new Vector3(); pos.x = m_LocalPosition.x; pos.y = m_LocalPosition.y ; - pos.z = transform.position.z; + pos.z = transform.localPosition.z; return pos; } + #endregion #if UNITY_EDITOR private void OnDrawGizmos() |