From 06df35f1e8e9695b844553867a39cd12d68db8b4 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 22 Apr 2022 09:24:15 +0800 Subject: *arrow --- AlienSurvival/Assets/Scripts/GameApp.cs | 25 +++++++++++ AlienSurvival/Assets/Scripts/GameApp.cs.meta | 11 +++++ .../Assets/Scripts/TopDown/TopDownTransform.cs | 5 +-- .../Assets/Scripts/TopDown/TopDownUtils.cs | 25 +++++++++++ .../Assets/Scripts/TopDown/TopDownUtils.cs.meta | 11 +++++ AlienSurvival/Assets/Scripts/Utils/GameLoop.cs | 13 +++--- AlienSurvival/Assets/Scripts/Utils/Singleton.cs | 24 +++++++++++ .../Assets/Scripts/Utils/Singleton.cs.meta | 11 +++++ .../Assets/Scripts/Utils/TinyCountDown.cs | 48 ++++++++++++++++++++++ .../Assets/Scripts/Utils/TinyCountDown.cs.meta | 11 +++++ 10 files changed, 174 insertions(+), 10 deletions(-) create mode 100644 AlienSurvival/Assets/Scripts/GameApp.cs create mode 100644 AlienSurvival/Assets/Scripts/GameApp.cs.meta create mode 100644 AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs create mode 100644 AlienSurvival/Assets/Scripts/TopDown/TopDownUtils.cs.meta create mode 100644 AlienSurvival/Assets/Scripts/Utils/Singleton.cs create mode 100644 AlienSurvival/Assets/Scripts/Utils/Singleton.cs.meta create mode 100644 AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs create mode 100644 AlienSurvival/Assets/Scripts/Utils/TinyCountDown.cs.meta (limited to 'AlienSurvival/Assets/Scripts') 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 +{ + + /// + /// 从TopDown空间转到3D空间下(TopDownTransform -> Transform) + /// + /// + /// + /// + 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 { - 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 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 +{ + + private Dictionary m_CountDown = new Dictionary(); + 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 keys = new List(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: -- cgit v1.1-26-g67d0