summaryrefslogtreecommitdiff
path: root/AlienSurvival/Assets/Scripts
diff options
context:
space:
mode:
Diffstat (limited to 'AlienSurvival/Assets/Scripts')
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown.meta8
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/Editor.meta (renamed from AlienSurvival/Assets/Scripts/Physics/Editor.meta)0
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs (renamed from AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs)0
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/Editor/TopDownTransformInspector.cs.meta (renamed from AlienSurvival/Assets/Scripts/Physics/Editor/TopDownTransformInspector.cs.meta)0
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs (renamed from AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs)8
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownShadowCaster.cs.meta (renamed from AlienSurvival/Assets/Scripts/Rendering/TopDownShadowCaster.cs.meta)0
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs25
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownSorting.cs.meta11
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs (renamed from AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs)35
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs.meta (renamed from AlienSurvival/Assets/Scripts/Physics/TopDownTransform.cs.meta)0
-rw-r--r--AlienSurvival/Assets/Scripts/Utils.meta8
-rw-r--r--AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs18
-rw-r--r--AlienSurvival/Assets/Scripts/Utils/GameObjectUtils.cs.meta11
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: