From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- Client/Assets/Scripts/LuaEngine/Core/Single.cs | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Client/Assets/Scripts/LuaEngine/Core/Single.cs (limited to 'Client/Assets/Scripts/LuaEngine/Core/Single.cs') diff --git a/Client/Assets/Scripts/LuaEngine/Core/Single.cs b/Client/Assets/Scripts/LuaEngine/Core/Single.cs new file mode 100644 index 00000000..7286d44c --- /dev/null +++ b/Client/Assets/Scripts/LuaEngine/Core/Single.cs @@ -0,0 +1,59 @@ +using UnityEngine; +using System.Collections; + +public class Single where T : new() +{ + private static T s_instance; + + public static T Instance + { + get { return GetInstance(); } + } + + protected Single() + { + } + + public static void CreateInstance() + { + if (s_instance == null) + { + s_instance = new T(); + + (s_instance as Single).Init(); + } + } + + public static void DestroyInstance() + { + if (s_instance != null) + { + (s_instance as Single).UnInit(); + s_instance = default(T); + } + } + + public static T GetInstance() + { + if (s_instance == null) + { + CreateInstance(); + } + return s_instance; + } + + public static bool HasInstance() + { + return (s_instance != null); + } + + public virtual void Init() + { + } + + public virtual void UnInit() + { + } + + +} -- cgit v1.1-26-g67d0