From 1b79ca871dff7a56dad8a9857f151011c1cfd9e3 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 18 Feb 2022 16:19:48 +0800 Subject: +CustomExecutionOrder --- .../JamUtils/Scripts/Character/CameraFollow.cs | 2 +- .../Input/LiteInputManager/LiteInputManager.cs | 2 +- .../Assets/JamUtils/Scripts/Math/MathUtils.cs | 2 +- .../Assets/JamUtils/Scripts/UI/UIPanelBase.cs | 2 +- .../JamUtils/Scripts/Utils/ColliderUtility.cs | 2 +- .../JamUtils/Scripts/Utils/CustomExecutionOrder.cs | 72 ++++++++++++++++++++++ .../Scripts/Utils/CustomExecutionOrder.cs.meta | 11 ++++ .../Assets/JamUtils/Scripts/Utils/GizmosHandle.cs | 2 +- 8 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 JamHelper/Assets/JamUtils/Scripts/Utils/CustomExecutionOrder.cs create mode 100644 JamHelper/Assets/JamUtils/Scripts/Utils/CustomExecutionOrder.cs.meta (limited to 'JamHelper/Assets/JamUtils/Scripts') diff --git a/JamHelper/Assets/JamUtils/Scripts/Character/CameraFollow.cs b/JamHelper/Assets/JamUtils/Scripts/Character/CameraFollow.cs index c711f87..7a82857 100644 --- a/JamHelper/Assets/JamUtils/Scripts/Character/CameraFollow.cs +++ b/JamHelper/Assets/JamUtils/Scripts/Character/CameraFollow.cs @@ -2,7 +2,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -namespace JamTools +namespace JamUtils { } \ No newline at end of file diff --git a/JamHelper/Assets/JamUtils/Scripts/Input/LiteInputManager/LiteInputManager.cs b/JamHelper/Assets/JamUtils/Scripts/Input/LiteInputManager/LiteInputManager.cs index b1b41ad..c2f6c26 100644 --- a/JamHelper/Assets/JamUtils/Scripts/Input/LiteInputManager/LiteInputManager.cs +++ b/JamHelper/Assets/JamUtils/Scripts/Input/LiteInputManager/LiteInputManager.cs @@ -2,7 +2,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -namespace JamTools +namespace JamUtils { public class LiteInputManager : MonoBehaviour diff --git a/JamHelper/Assets/JamUtils/Scripts/Math/MathUtils.cs b/JamHelper/Assets/JamUtils/Scripts/Math/MathUtils.cs index fb2378e..befb5d7 100644 --- a/JamHelper/Assets/JamUtils/Scripts/Math/MathUtils.cs +++ b/JamHelper/Assets/JamUtils/Scripts/Math/MathUtils.cs @@ -2,7 +2,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -namespace JamTools +namespace JamUtils { public class MathUtils diff --git a/JamHelper/Assets/JamUtils/Scripts/UI/UIPanelBase.cs b/JamHelper/Assets/JamUtils/Scripts/UI/UIPanelBase.cs index b3dee94..5df7587 100644 --- a/JamHelper/Assets/JamUtils/Scripts/UI/UIPanelBase.cs +++ b/JamHelper/Assets/JamUtils/Scripts/UI/UIPanelBase.cs @@ -2,7 +2,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -namespace JamTools +namespace JamUtils { // diff --git a/JamHelper/Assets/JamUtils/Scripts/Utils/ColliderUtility.cs b/JamHelper/Assets/JamUtils/Scripts/Utils/ColliderUtility.cs index 3efe155..8c8225c 100644 --- a/JamHelper/Assets/JamUtils/Scripts/Utils/ColliderUtility.cs +++ b/JamHelper/Assets/JamUtils/Scripts/Utils/ColliderUtility.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using UnityEngine; -namespace JamTools +namespace JamUtils { public static class ColliderUtility diff --git a/JamHelper/Assets/JamUtils/Scripts/Utils/CustomExecutionOrder.cs b/JamHelper/Assets/JamUtils/Scripts/Utils/CustomExecutionOrder.cs new file mode 100644 index 0000000..acef40f --- /dev/null +++ b/JamHelper/Assets/JamUtils/Scripts/Utils/CustomExecutionOrder.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace JamUtils +{ + [DefaultExecutionOrder(ORDER_EXECUTION)] + public class CustomExecutionOrder : MonoBehaviour + { + private const int ORDER_EXECUTION = -98; + + static CustomExecutionOrder _instance; + + public static CustomExecutionOrder Instance + { + get + { + if (_instance == null) + { + GameObject inst = new GameObject("CustomExecutionOrder"); + inst.hideFlags = HideFlags.DontSave; + DontDestroyOnLoad(inst); + + _instance = inst.AddComponent(); + } + return _instance; + } + } + + public event Action beforeFixedUpdate; + public event Action afterFixedUpdate; + + public event Action beforeUpdate; + public event Action afterUpdate; + + private void Awake() + { + StartCoroutine(WaitForEndOfFrame()); + StartCoroutine(WaitForFixedUpdate()); + } + + private IEnumerator WaitForEndOfFrame() + { + while (true) + { + yield return new WaitForEndOfFrame(); + if (afterUpdate != null) + afterUpdate(); + if (beforeFixedUpdate != null) + beforeFixedUpdate(); + } + } + + private IEnumerator WaitForFixedUpdate() + { + while (true) + { + yield return new WaitForFixedUpdate(); + if (afterFixedUpdate != null) + afterFixedUpdate(); + } + } + + private void Update() + { + if (beforeUpdate != null) + beforeUpdate(); + } + + } +} \ No newline at end of file diff --git a/JamHelper/Assets/JamUtils/Scripts/Utils/CustomExecutionOrder.cs.meta b/JamHelper/Assets/JamUtils/Scripts/Utils/CustomExecutionOrder.cs.meta new file mode 100644 index 0000000..a8e4dfc --- /dev/null +++ b/JamHelper/Assets/JamUtils/Scripts/Utils/CustomExecutionOrder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fbaff1c60f455164fbaf0b027c216022 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: -98 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/JamHelper/Assets/JamUtils/Scripts/Utils/GizmosHandle.cs b/JamHelper/Assets/JamUtils/Scripts/Utils/GizmosHandle.cs index 360eecd..1c4c205 100644 --- a/JamHelper/Assets/JamUtils/Scripts/Utils/GizmosHandle.cs +++ b/JamHelper/Assets/JamUtils/Scripts/Utils/GizmosHandle.cs @@ -3,7 +3,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; -namespace JamTools +namespace JamUtils { public class GizmosHandle : MonoBehaviour -- cgit v1.1-26-g67d0