From 3efdf65bdbef935198a18166a3c7469982348e45 Mon Sep 17 00:00:00 2001 From: xhxy <2290327506@qq.com> Date: Sat, 19 Apr 2025 22:00:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=AC=E5=85=B1Mono=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/ProjectBase/Mono.meta | 8 +++ .../ProjectBase/Mono/MonoController.cs | 48 +++++++++++++++ .../ProjectBase/Mono/MonoController.cs.meta | 11 ++++ Assets/Scripts/ProjectBase/Mono/MonoMgr.cs | 58 +++++++++++++++++++ .../Scripts/ProjectBase/Mono/MonoMgr.cs.meta | 11 ++++ Assets/Scripts/ProjectBase/Test/Test.cs | 12 +++- 6 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 Assets/Scripts/ProjectBase/Mono.meta create mode 100644 Assets/Scripts/ProjectBase/Mono/MonoController.cs create mode 100644 Assets/Scripts/ProjectBase/Mono/MonoController.cs.meta create mode 100644 Assets/Scripts/ProjectBase/Mono/MonoMgr.cs create mode 100644 Assets/Scripts/ProjectBase/Mono/MonoMgr.cs.meta diff --git a/Assets/Scripts/ProjectBase/Mono.meta b/Assets/Scripts/ProjectBase/Mono.meta new file mode 100644 index 0000000..d87c143 --- /dev/null +++ b/Assets/Scripts/ProjectBase/Mono.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e30bce2b8dc3a1542ab441145ccbca6a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ProjectBase/Mono/MonoController.cs b/Assets/Scripts/ProjectBase/Mono/MonoController.cs new file mode 100644 index 0000000..455ae68 --- /dev/null +++ b/Assets/Scripts/ProjectBase/Mono/MonoController.cs @@ -0,0 +1,48 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +/// <summary> +/// Mono�Ĺ����� +/// 1.�������ں��� +/// 2.�¼� +/// 3.Э�� +/// </summary> +public class MonoController : MonoBehaviour +{ + private event UnityAction updateEvent; + + void Start() + { + DontDestroyOnLoad(this.gameObject); + } + + // Update is called once per frame + void Update() + { + if (updateEvent != null) + { + updateEvent(); + } + } + + /// <summary> + /// ���ⲿ�ṩ������֡�����¼��ĺ��� + /// </summary> + /// <param name="fun"></param> + public void AddUpdateListener(UnityAction fun) + { + updateEvent += fun; + } + + /// <summary> + /// �ṩ���ⲿ �����Ƴ�֡�����¼����� + /// </summary> + /// <param name="fun"></param> + public void RemoveUpdateListener(UnityAction fun) + { + updateEvent -= fun; + } + +} diff --git a/Assets/Scripts/ProjectBase/Mono/MonoController.cs.meta b/Assets/Scripts/ProjectBase/Mono/MonoController.cs.meta new file mode 100644 index 0000000..b707d40 --- /dev/null +++ b/Assets/Scripts/ProjectBase/Mono/MonoController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 981b118304ab49c45bf5c15ce9853338 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ProjectBase/Mono/MonoMgr.cs b/Assets/Scripts/ProjectBase/Mono/MonoMgr.cs new file mode 100644 index 0000000..2510d47 --- /dev/null +++ b/Assets/Scripts/ProjectBase/Mono/MonoMgr.cs @@ -0,0 +1,58 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +/// <summary> +/// �����ṩ���ⲿ����֡�����¼��ķ��� +/// ���Ը��ⲿ����Э�̵ķ��� +/// </summary> +public class MonoMgr : BaseManager<MonoMgr> +{ + private MonoController controller; + + public MonoMgr() + { + //��֤��MonoController��Ψһ�� + GameObject obj = new GameObject("MonoController"); + controller = obj.AddComponent<MonoController>(); + } + + + /// <summary> + /// ���ⲿ�ṩ������֡�����¼��ĺ��� + /// </summary> + /// <param name="fun"></param> + public void AddUpdateListener(UnityAction fun) + { + controller.AddUpdateListener(fun); + // controller.StartCoroutine(); + + } + + /// <summary> + /// �ṩ���ⲿ �����Ƴ�֡�����¼����� + /// </summary> + /// <param name="fun"></param> + public void RemoveUpdateListener(UnityAction fun) + { + controller.RemoveUpdateListener(fun); + } + + /// <summary> + /// ��װһ��Э��,����Ҳ�������ӷ�������װ + /// </summary> + /// <param name="routine"></param> + /// <returns></returns> + public Coroutine StartCoroutine(IEnumerator routine) + { + return controller.StartCoroutine(routine); + } + + //������Լ�����װ���Mono���� + /*public Coroutine StartCoroutine(IEnumerator routine) + { + return controller.StartCoroutine(routine); + }*/ + +} diff --git a/Assets/Scripts/ProjectBase/Mono/MonoMgr.cs.meta b/Assets/Scripts/ProjectBase/Mono/MonoMgr.cs.meta new file mode 100644 index 0000000..7d2175d --- /dev/null +++ b/Assets/Scripts/ProjectBase/Mono/MonoMgr.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4de48ca79531e9942b06cabbc98dac8b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ProjectBase/Test/Test.cs b/Assets/Scripts/ProjectBase/Test/Test.cs index 509bc0f..74fa0a8 100644 --- a/Assets/Scripts/ProjectBase/Test/Test.cs +++ b/Assets/Scripts/ProjectBase/Test/Test.cs @@ -2,12 +2,22 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +public class TestTest +{ + public void Update() + { + Debug.Log("TestTest"); + } +} + + public class Test : MonoBehaviour { // Start is called before the first frame update void Start() { - + TestTest t = new TestTest(); + MonoMgr.GetInstance().AddUpdateListener(t.Update); } // Update is called once per frame