diff options
Diffstat (limited to 'AlienSurvival/Assets/Scripts/TopDown')
-rw-r--r-- | AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs | 6 | ||||
-rw-r--r-- | AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs | 33 |
2 files changed, 34 insertions, 5 deletions
diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs index e027771..6741275 100644 --- a/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs @@ -21,7 +21,7 @@ public class TopDownShadowCaster : MonoBehaviour m_ShadowRenderer.flipX = flip; } - private void Start() + private void Awake() { m_Coord = GetComponent<TopDownTransform>(); m_SpriteRenderer = GetComponent<SpriteRenderer>(); @@ -42,6 +42,10 @@ public class TopDownShadowCaster : MonoBehaviour } } + private void Start() + { + } + private void Update() { if (m_Shadow == null) 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() |