summaryrefslogtreecommitdiff
path: root/AlienSurvival/Assets/Scripts
diff options
context:
space:
mode:
Diffstat (limited to 'AlienSurvival/Assets/Scripts')
-rw-r--r--AlienSurvival/Assets/Scripts/GameApp.cs25
-rw-r--r--AlienSurvival/Assets/Scripts/GameApp.cs.meta11
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs5
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs25
-rw-r--r--AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs.meta11
-rw-r--r--AlienSurvival/Assets/Scripts/Utils/GameLoop.cs13
-rw-r--r--AlienSurvival/Assets/Scripts/Utils/Singleton.cs24
-rw-r--r--AlienSurvival/Assets/Scripts/Utils/Singleton.cs.meta11
-rw-r--r--AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs48
-rw-r--r--AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs.meta11
10 files changed, 174 insertions, 10 deletions
diff --git a/AlienSurvival/Assets/Scripts/GameApp.cs b/AlienSurvival/Assets/Scripts/GameApp.cs
new file mode 100644
index 0000000..d5f9d70
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/GameApp.cs
@@ -0,0 +1,25 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+[DisallowMultipleComponent]
+public class GameApp : MonoBehaviour
+{
+
+ void Start()
+ {
+
+ }
+
+ void Update()
+ {
+ GameLoop.Instance.Update();
+ TinyCountDown.Instance.Update();
+ }
+
+ void LateUpdate()
+ {
+
+ }
+
+}
diff --git a/AlienSurvival/Assets/Scripts/GameApp.cs.meta b/AlienSurvival/Assets/Scripts/GameApp.cs.meta
new file mode 100644
index 0000000..3c64a3e
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/GameApp.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4a8eff5fd2fd4e34e8896ce4c086ba44
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: -1100
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs
index d624267..213e9ff 100644
--- a/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs
+++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownTransform.cs
@@ -212,9 +212,8 @@ public class TopDownTransform : MonoBehaviour
#if UNITY_EDITOR
private void OnDrawGizmos()
{
- // dash line
- Vector3 start = transform.position;
- Vector3 end = start - new Vector3(0, m_LocalPosition.z, 0);
+ Vector3 start = TopDownUtils.Project(position);
+ Vector3 end = TopDownUtils.Project(positionOnGround);
Handles.DrawDottedLine(start, end, 1f);
Handles.DrawWireCube(end, new Vector3(0.1f, 0.1f, 0f));
diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs b/AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs
new file mode 100644
index 0000000..f42e123
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs
@@ -0,0 +1,25 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class TopDownUtils
+{
+
+ /// <summary>
+ /// 从TopDown空间转到3D空间下(TopDownTransform -> Transform)
+ /// </summary>
+ /// <param name="topDownCoord"></param>
+ /// <param name="z"></param>
+ /// <returns></returns>
+ public static Vector3 Project(Vector3 topDownCoord, float z = 0)
+ {
+ Vector3 pos = new Vector3();
+
+ pos.x = topDownCoord.x;
+ pos.y = topDownCoord.y + topDownCoord.z;
+ pos.z = z;
+
+ return pos;
+ }
+
+} \ No newline at end of file
diff --git a/AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs.meta b/AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs.meta
new file mode 100644
index 0000000..f60e1ef
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c60891307755afb4fb72033ed1cd557d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AlienSurvival/Assets/Scripts/Utils/GameLoop.cs b/AlienSurvival/Assets/Scripts/Utils/GameLoop.cs
index 6bbb140..6ae7d87 100644
--- a/AlienSurvival/Assets/Scripts/Utils/GameLoop.cs
+++ b/AlienSurvival/Assets/Scripts/Utils/GameLoop.cs
@@ -2,18 +2,17 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
-public class GameLoop : MonoBehaviour
+public class GameLoop : Singleton<GameLoop>
{
- static public GameLoop Instance { get; private set; }
- public int indexOfUpdate { get; private set; } = 0;
-
- private void Awake()
+ public GameLoop()
{
- Instance = this;
+ indexOfUpdate = 0;
}
- private void Update()
+ public int indexOfUpdate { get; private set; } = 0;
+
+ public void Update()
{
++indexOfUpdate;
}
diff --git a/AlienSurvival/Assets/Scripts/Utils/Singleton.cs b/AlienSurvival/Assets/Scripts/Utils/Singleton.cs
new file mode 100644
index 0000000..d7aad49
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/Utils/Singleton.cs
@@ -0,0 +1,24 @@
+public class Singleton<T> where T : class, new()
+{
+ private static T _instance;
+ private static readonly object syslock = new object();
+
+ public static T Instance
+ {
+ get
+ {
+ if (_instance == null)
+ {
+ lock (syslock)
+ {
+ if (_instance == null)
+ {
+ _instance = new T();
+ }
+ }
+ }
+ return _instance;
+
+ }
+ }
+} \ No newline at end of file
diff --git a/AlienSurvival/Assets/Scripts/Utils/Singleton.cs.meta b/AlienSurvival/Assets/Scripts/Utils/Singleton.cs.meta
new file mode 100644
index 0000000..ff0aab9
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/Utils/Singleton.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1b80a3ccdebef4b4db85130a4bde2d00
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs b/AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs
new file mode 100644
index 0000000..dbeae55
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs
@@ -0,0 +1,48 @@
+using System.Linq;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class TinyCountDown :Singleton<TinyCountDown>
+{
+
+ private Dictionary<string, float> m_CountDown = new Dictionary<string, float>();
+ public TinyCountDown()
+ {
+ }
+
+ public void Set(string key, float time)
+ {
+ if (!m_CountDown.ContainsKey(key))
+ {
+ m_CountDown.Add(key, time);
+ }
+ else
+ {
+ m_CountDown[key] = time;
+ }
+ }
+
+ public float Get(string key)
+ {
+ if (m_CountDown.ContainsKey(key))
+ {
+ return m_CountDown[key];
+ }
+ return 0;
+ }
+
+ public void Update()
+ {
+ List<string> keys = new List<string>(m_CountDown.Keys);
+ foreach (var key in keys)
+ {
+ m_CountDown[key] -= Time.deltaTime;
+ if(m_CountDown[key] <= 0)
+ {
+ m_CountDown.Remove(key);
+ }
+ }
+
+ }
+}
diff --git a/AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs.meta b/AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs.meta
new file mode 100644
index 0000000..c9f5545
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: de0d1a4a5baf48a4083e5d7f457ea8b0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: