diff options
Diffstat (limited to 'AlienSurvival/Assets/Scripts')
13 files changed, 123 insertions, 1 deletions
diff --git a/AlienSurvival/Assets/Scripts/TopDown.meta b/AlienSurvival/Assets/Scripts/TopDown.meta new file mode 100644 index 0000000..e81c7d0 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42550630c8f16584fa0e12e91bd6db2a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/Physics/Editor.meta b/AlienSurvival/Assets/Scripts/TopDown/Editor.meta index fa70114..fa70114 100644 --- a/AlienSurvival/Assets/Scripts/Physics/Editor.meta +++ b/AlienSurvival/Assets/Scripts/TopDown/Editor.meta diff --git a/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs b/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs index b1ceaab..b1ceaab 100644 --- a/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs +++ b/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs diff --git a/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs.meta index 09d9899..09d9899 100644 --- a/AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs.meta +++ b/AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs.meta diff --git a/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs index 00415bc..e027771 100644 --- a/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs @@ -7,7 +7,7 @@ using UnityEngine; [RequireComponent(typeof(SpriteRenderer))] public class TopDownShadowCaster : MonoBehaviour { - [SerializeField] private Color m_Color = Color.black; + [SerializeField] private Color m_Color = new Color32(0,0,0, 58); [SerializeField] private Vector2 m_Scale = new Vector2(1, 0.5f); private GameObject m_Shadow; @@ -16,6 +16,11 @@ public class TopDownShadowCaster : MonoBehaviour private TopDownTransform m_Coord; private SpriteRenderer m_SpriteRenderer; + public void Flip(bool flip) + { + m_ShadowRenderer.flipX = flip; + } + private void Start() { m_Coord = GetComponent<TopDownTransform>(); @@ -43,6 +48,7 @@ public class TopDownShadowCaster : MonoBehaviour return; m_ShadowRenderer.color = m_Color; + m_ShadowRenderer.sprite = m_SpriteRenderer.sprite; Vector3 pos = m_Coord.GetGround3DPosition(); m_Shadow.transform.position = pos; diff --git a/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs.meta index f81ad1b..f81ad1b 100644 --- a/AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs.meta +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs.meta diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs new file mode 100644 index 0000000..d7ce933 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs @@ -0,0 +1,25 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[DisallowMultipleComponent] +[RequireComponent(typeof(SpriteRenderer))] +[RequireComponent(typeof(TopDownTransform))] +public class TopDownSorting : MonoBehaviour +{ + private SpriteRenderer m_SpriteRenderer; + private TopDownTransform m_Coord; + + private void Start() + { + m_SpriteRenderer = GetComponent<SpriteRenderer>(); + m_Coord = GetComponent<TopDownTransform>(); + } + + private void Update() + { + // 根据y设置sortOrder + m_SpriteRenderer.sortingOrder = (int)(-m_Coord.y * 100); + } + +} diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs.meta new file mode 100644 index 0000000..fa499d2 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7a9f0293bd6e86e43bbbefc99b5e2722 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs index d93a453..7e4c261 100644 --- a/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs @@ -28,6 +28,18 @@ public class TopDownTransform : MonoBehaviour // x, z [SerializeField] private Vector2 m_LocalScale; + public Vector3 position + { + get + { + return m_LocalPosition; + } + set + { + m_LocalPosition = value; + } + } + public float x { get @@ -65,6 +77,19 @@ public class TopDownTransform : MonoBehaviour Project(); } } + public float height + { + get + { + return z; + } + set + { + m_LocalPosition.z = value; + Project(); + } + } + /// <summary> /// “投影”,把坐标转换到Transform上 /// </summary> @@ -77,6 +102,16 @@ public class TopDownTransform : MonoBehaviour transform.position = pos; } + private void Start() + { + SpriteRenderer sr = GetComponent<SpriteRenderer>(); + if (sr) + { + gameObject.AddOrGetComponent<TopDownSorting>(); + gameObject.AddOrGetComponent<TopDownShadowCaster>(); + } + } + private void Update() { Project(); diff --git a/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs.meta index cc1445d..cc1445d 100644 --- a/AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs.meta +++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs.meta diff --git a/AlienSurvival/Assets/Scripts/Utils.meta b/AlienSurvival/Assets/Scripts/Utils.meta new file mode 100644 index 0000000..8866322 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c8b3daee7311a114c9b54fedba31b631 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs b/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs new file mode 100644 index 0000000..416f097 --- /dev/null +++ b/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public static class GameObjectUtils +{ + + public static T AddOrGetComponent<T>(this GameObject go) where T : MonoBehaviour + { + T comp = go.GetComponent<T>(); + if(comp == null) + { + comp = go.AddComponent<T>(); + } + return comp; + } + +}
\ No newline at end of file diff --git a/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs.meta b/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs.meta new file mode 100644 index 0000000..eb4979a --- /dev/null +++ b/AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a2cfaa149609631408d5f2f301a232fe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |