summaryrefslogtreecommitdiff
path: root/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs
diff options
context:
space:
mode:
Diffstat (limited to 'AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs')
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs33
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()