Arsene 4 年之前
父節點
當前提交
d9f582329f
共有 45 個文件被更改,包括 272 次插入159 次删除
  1. 0 21
      Assets/Event/GamePassEvent.cs
  2. 0 23
      Assets/Event/GameSrartEvent.cs
  3. 6 19
      Assets/FrameWorkDesign/Example/Game.unity
  4. 0 0
      Assets/FrameWorkDesign/Example/Resources.meta
  5. 0 0
      Assets/FrameWorkDesign/Example/Scenes.meta
  6. 0 0
      Assets/FrameWorkDesign/Example/Scenes/SampleScene.unity
  7. 0 0
      Assets/FrameWorkDesign/Example/Scenes/SampleScene.unity.meta
  8. 0 0
      Assets/FrameWorkDesign/Example/Scripts.meta
  9. 1 1
      Assets/Event.meta
  10. 17 0
      Assets/FrameWorkDesign/Example/Scripts/Command/KillEnemyCommand.cs
  11. 1 1
      Assets/Game/Game.cs.meta
  12. 11 0
      Assets/FrameWorkDesign/Example/Scripts/Command/StartGameCommand.cs
  13. 1 1
      Assets/Game/Game.cs.meta
  14. 21 0
      Assets/FrameWorkDesign/Example/Scripts/Enemy.cs
  15. 0 0
      Assets/FrameWorkDesign/Example/Scripts/Enemy.cs.meta
  16. 0 0
      Assets/FrameWorkDesign/Example/Scripts/Event.meta
  17. 14 0
      Assets/FrameWorkDesign/Example/Scripts/Event/GamePassEvent.cs
  18. 0 0
      Assets/FrameWorkDesign/Example/Scripts/Event/GamePassEvent.cs.meta
  19. 14 0
      Assets/FrameWorkDesign/Example/Scripts/Event/GameSrartEvent.cs
  20. 0 0
      Assets/FrameWorkDesign/Example/Scripts/Event/GameSrartEvent.cs.meta
  21. 0 0
      Assets/FrameWorkDesign/Example/Scripts/Game.meta
  22. 28 0
      Assets/FrameWorkDesign/Example/Scripts/Game/Game.cs
  23. 0 0
      Assets/FrameWorkDesign/Example/Scripts/Game/Game.cs.meta
  24. 1 1
      Assets/Event.meta
  25. 31 0
      Assets/FrameWorkDesign/Example/Scripts/Game/Model/GameModel.cs
  26. 1 1
      Assets/Game/Game.cs.meta
  27. 0 0
      Assets/FrameWorkDesign/Example/Scripts/UI.meta
  28. 24 0
      Assets/FrameWorkDesign/Example/Scripts/UI/GameStartPanel.cs
  29. 0 0
      Assets/FrameWorkDesign/Example/Scripts/UI/GameStartPanel.cs.meta
  30. 26 0
      Assets/FrameWorkDesign/Example/Scripts/UI/UI.cs
  31. 0 0
      Assets/FrameWorkDesign/Example/Scripts/UI/UI.cs.meta
  32. 1 1
      Assets/Event.meta
  33. 1 1
      Assets/Event.meta
  34. 31 0
      Assets/FrameWorkDesign/FrameWork/BindableProperty/BindableProperty.cs
  35. 1 1
      Assets/Game/Game.cs.meta
  36. 1 1
      Assets/Event.meta
  37. 12 0
      Assets/FrameWorkDesign/FrameWork/Command/ICommand.cs
  38. 1 1
      Assets/Game/Game.cs.meta
  39. 1 1
      Assets/Event.meta
  40. 25 0
      Assets/FrameWorkDesign/FrameWork/Event/Event.cs
  41. 1 1
      Assets/Game/Game.cs.meta
  42. 0 21
      Assets/Game/Game.cs
  43. 0 21
      Assets/Scripts/Enemy.cs
  44. 0 20
      Assets/Scripts/UI/GameStartPanel.cs
  45. 0 22
      Assets/Scripts/UI/UI.cs

+ 0 - 21
Assets/Event/GamePassEvent.cs

@@ -1,21 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class GamePassEvent : MonoBehaviour
-{
-    public static Action mOnEvent;
-    public static void Register(Action onEvent)
-    {
-        mOnEvent += onEvent;
-    }
-    public static void UnRegister(Action onEvent)
-    {
-        mOnEvent -= onEvent;
-    }
-    public static void Trigger()
-    {
-        mOnEvent?.Invoke();
-    }
-}

+ 0 - 23
Assets/Event/GameSrartEvent.cs

@@ -1,23 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class GameSrartEvent : MonoBehaviour
-{
-    private static Action mOnEvent;
-
-    public static void Register(Action onEvent)
-    {
-        mOnEvent += onEvent;
-    }
-
-    public static void UnRegister(Action onEvent)
-    {
-        mOnEvent -= onEvent;
-    }
-    public static void Trigger()
-    {
-        mOnEvent?.Invoke();
-    }
-}

+ 6 - 19
Assets/FrameWorkDesign/Example/Game.unity

@@ -262,7 +262,6 @@ GameObject:
   - component: {fileID: 75747970}
   - component: {fileID: 75747972}
   - component: {fileID: 75747971}
-  - component: {fileID: 75747973}
   m_Layer: 5
   m_Name: GamePassPanel
   m_TagString: Untagged
@@ -327,18 +326,6 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 75747969}
   m_CullTransparentMesh: 0
---- !u!114 &75747973
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 75747969}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: c01384794f961d041af1310554f2130e, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
 --- !u!1 &113648975
 GameObject:
   m_ObjectHideFlags: 0
@@ -733,7 +720,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 03dab518e674c124e98b668b805aec4e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GamePassPenel: {fileID: 0}
+  GamePassPenel: {fileID: 75747969}
 --- !u!1 &567289259
 GameObject:
   m_ObjectHideFlags: 0
@@ -921,7 +908,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 03dab518e674c124e98b668b805aec4e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GamePassPenel: {fileID: 0}
+  GamePassPenel: {fileID: 75747969}
 --- !u!1 &739443246
 GameObject:
   m_ObjectHideFlags: 0
@@ -1267,7 +1254,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 03dab518e674c124e98b668b805aec4e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GamePassPenel: {fileID: 0}
+  GamePassPenel: {fileID: 75747969}
 --- !u!1 &1312358314
 GameObject:
   m_ObjectHideFlags: 0
@@ -1585,7 +1572,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 03dab518e674c124e98b668b805aec4e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GamePassPenel: {fileID: 0}
+  GamePassPenel: {fileID: 75747969}
 --- !u!1 &1447244259
 GameObject:
   m_ObjectHideFlags: 0
@@ -1692,7 +1679,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 03dab518e674c124e98b668b805aec4e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GamePassPenel: {fileID: 0}
+  GamePassPenel: {fileID: 75747969}
 --- !u!1 &1878704878
 GameObject:
   m_ObjectHideFlags: 0
@@ -1799,7 +1786,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: 03dab518e674c124e98b668b805aec4e, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  GamePassPenel: {fileID: 0}
+  GamePassPenel: {fileID: 75747969}
 --- !u!1 &2044912336
 GameObject:
   m_ObjectHideFlags: 0

Assets/Resources.meta → Assets/FrameWorkDesign/Example/Resources.meta


Assets/Scenes.meta → Assets/FrameWorkDesign/Example/Scenes.meta


Assets/Scenes/SampleScene.unity → Assets/FrameWorkDesign/Example/Scenes/SampleScene.unity


Assets/Scenes/SampleScene.unity.meta → Assets/FrameWorkDesign/Example/Scenes/SampleScene.unity.meta


Assets/Scripts.meta → Assets/FrameWorkDesign/Example/Scripts.meta


+ 1 - 1
Assets/Event.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 1072c5f81f5db3045857c01fb86c8611
+guid: 02a6efc211d67204aa6eb40142a24ae8
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 17 - 0
Assets/FrameWorkDesign/Example/Scripts/Command/KillEnemyCommand.cs

@@ -0,0 +1,17 @@
+using UnityEngine;
+namespace FrameWorkDesign.Example
+{
+    public struct KillEnemyCommand : ICommand
+    {
+        public void Execute()
+        {
+            GameModel.killCount.Value++;
+            Debug.Log(GameModel.killCount.Value);
+            if (GameModel.killCount.Value == 6)
+            {
+                GamePassEvent.Trigger();
+            }
+        }
+    }
+
+}

+ 1 - 1
Assets/Game/Game.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 7a721c7766350204cae5a3647d5fb070
+guid: 8b4e3096131dcf243a61d49f3fe75582
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 11 - 0
Assets/FrameWorkDesign/Example/Scripts/Command/StartGameCommand.cs

@@ -0,0 +1,11 @@
+namespace FrameWorkDesign.Example
+{
+    public struct StartGameCommand : ICommand
+    {
+        public void Execute()
+        {
+            GameSrartEvent.Trigger(); 
+        }
+    }
+
+}

+ 1 - 1
Assets/Game/Game.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 7a721c7766350204cae5a3647d5fb070
+guid: dec6c19483616784e95dc26a3dd5158f
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 21 - 0
Assets/FrameWorkDesign/Example/Scripts/Enemy.cs

@@ -0,0 +1,21 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace FrameWorkDesign.Example
+{
+    public class Enemy : MonoBehaviour
+    {
+        public GameObject GamePassPenel;
+
+        private void OnMouseDown()
+        {
+            Destroy(gameObject);
+
+            new KillEnemyCommand().Execute();
+
+        }
+
+    }
+
+}

Assets/Scripts/Enemy.cs.meta → Assets/FrameWorkDesign/Example/Scripts/Enemy.cs.meta


Assets/Event.meta → Assets/FrameWorkDesign/Example/Scripts/Event.meta


+ 14 - 0
Assets/FrameWorkDesign/Example/Scripts/Event/GamePassEvent.cs

@@ -0,0 +1,14 @@
+using FrameWorkDesign;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace FrameWorkDesign.Example
+{
+    public class GamePassEvent : Event<GamePassEvent>
+    {
+
+    }
+
+}

Assets/Event/GamePassEvent.cs.meta → Assets/FrameWorkDesign/Example/Scripts/Event/GamePassEvent.cs.meta


+ 14 - 0
Assets/FrameWorkDesign/Example/Scripts/Event/GameSrartEvent.cs

@@ -0,0 +1,14 @@
+using FrameWorkDesign;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace FrameWorkDesign.Example
+{
+    public class GameSrartEvent : Event<GameSrartEvent>
+    {
+
+    }
+}
+

Assets/Event/GameSrartEvent.cs.meta → Assets/FrameWorkDesign/Example/Scripts/Event/GameSrartEvent.cs.meta


Assets/Game.meta → Assets/FrameWorkDesign/Example/Scripts/Game.meta


+ 28 - 0
Assets/FrameWorkDesign/Example/Scripts/Game/Game.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace FrameWorkDesign.Example
+{
+    public class Game : MonoBehaviour
+    {
+        private void Awake()
+        {
+            GameSrartEvent.Register(OnGameStart);
+        }
+        private void OnGameStart()
+        {
+            transform.Find("Enemies").gameObject.SetActive(true);
+        }
+
+        private void OnDestroy()
+        {
+            GameSrartEvent.UnRegister(OnGameStart);
+        }
+
+
+    }
+}
+
+

Assets/Game/Game.cs.meta → Assets/FrameWorkDesign/Example/Scripts/Game/Game.cs.meta


+ 1 - 1
Assets/Event.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 1072c5f81f5db3045857c01fb86c8611
+guid: edb7d22dee7ee5a4d88edcec5a0a79f1
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 31 - 0
Assets/FrameWorkDesign/Example/Scripts/Game/Model/GameModel.cs

@@ -0,0 +1,31 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+namespace FrameWorkDesign.Example
+{
+   public class GameModel
+    {
+        public static BindableProperty<int> killCount = new BindableProperty<int>()
+        {
+            Value = 0
+        };
+
+        public static BindableProperty<int> Gold = new BindableProperty<int>()
+        {
+            Value = 0
+        };
+
+        public static BindableProperty<int> Score = new BindableProperty<int>()
+        {
+            Value = 0
+        };
+
+        public static BindableProperty<int> BestScore = new BindableProperty<int>()
+        {
+            Value = 0
+        };
+    }
+
+}

+ 1 - 1
Assets/Game/Game.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 7a721c7766350204cae5a3647d5fb070
+guid: 0fa8cae97d8ad754d903fc475e3ba535
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

Assets/Scripts/UI.meta → Assets/FrameWorkDesign/Example/Scripts/UI.meta


+ 24 - 0
Assets/FrameWorkDesign/Example/Scripts/UI/GameStartPanel.cs

@@ -0,0 +1,24 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace FrameWorkDesign.Example
+{
+    public class GameStartPanel : MonoBehaviour
+    {
+        public GameObject Enemies;
+        private void Start()
+        {
+            transform.Find("BtnStart").GetComponent<Button>()
+                .onClick.AddListener(() =>
+                {
+                    gameObject.SetActive(false);
+
+                    new StartGameCommand().Execute();
+                });
+        }
+    }
+
+}

Assets/Scripts/UI/GameStartPanel.cs.meta → Assets/FrameWorkDesign/Example/Scripts/UI/GameStartPanel.cs.meta


+ 26 - 0
Assets/FrameWorkDesign/Example/Scripts/UI/UI.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace FrameWorkDesign.Example
+{
+    public class UI : MonoBehaviour
+    {
+        private void Start()
+        {
+            GamePassEvent.Register(OnGamePass);
+        }
+
+        private void OnGamePass()
+        {
+            transform.Find("Canvas/GamePassPanel").gameObject.SetActive(true);
+        }
+        private void OnDestroy()
+        {
+            GamePassEvent.UnRegister(OnGamePass);
+        }
+
+    }
+
+}

Assets/Scripts/UI/UI.cs.meta → Assets/FrameWorkDesign/Example/Scripts/UI/UI.cs.meta


+ 1 - 1
Assets/Event.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 1072c5f81f5db3045857c01fb86c8611
+guid: 92219838c49deae4bb9291fe98aedd5b
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 1 - 1
Assets/Event.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 1072c5f81f5db3045857c01fb86c8611
+guid: 7107130243e1420468bf711b4aedbe93
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 31 - 0
Assets/FrameWorkDesign/FrameWork/BindableProperty/BindableProperty.cs

@@ -0,0 +1,31 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace FrameWorkDesign
+{
+    public class BindableProperty <T> where T:IEquatable<T>
+    {
+        private T mValue = default(T);
+        public T Value 
+        {
+            get
+            {
+                return mValue;
+            }
+            set
+            {
+                if (!value.Equals(mValue))
+                {
+                    mValue = value;
+
+                    OnValueChanged?.Invoke(value);
+                }
+            }
+        }
+
+        public Action<T> OnValueChanged;
+    }
+}
+

+ 1 - 1
Assets/Game/Game.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 7a721c7766350204cae5a3647d5fb070
+guid: 687a2d95daf572d428266176784eaa8d
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 1 - 1
Assets/Event.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 1072c5f81f5db3045857c01fb86c8611
+guid: c26b8761eeb6c9d47b734b5423709cbf
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 12 - 0
Assets/FrameWorkDesign/FrameWork/Command/ICommand.cs

@@ -0,0 +1,12 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+namespace FrameWorkDesign
+{
+    public interface ICommand 
+    {
+        void Execute();
+    }
+}

+ 1 - 1
Assets/Game/Game.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 7a721c7766350204cae5a3647d5fb070
+guid: 48c8fa54dd7d8614191ec2a69c0b4494
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 1 - 1
Assets/Event.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 1072c5f81f5db3045857c01fb86c8611
+guid: eb282bae1de8b884797689c8cc8b9bc4
 folderAsset: yes
 DefaultImporter:
   externalObjects: {}

+ 25 - 0
Assets/FrameWorkDesign/FrameWork/Event/Event.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace FrameWorkDesign
+{
+    public class Event<T> where T: Event<T>
+    {
+        public static Action mOnEvent;
+        public static void Register(Action onEvent)
+        {
+            mOnEvent += onEvent;
+        }
+        public static void UnRegister(Action onEvent)
+        {
+            mOnEvent -= onEvent;
+        }
+        public static void Trigger()
+        {
+            mOnEvent?.Invoke();
+        }
+    }
+}
+

+ 1 - 1
Assets/Game/Game.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 7a721c7766350204cae5a3647d5fb070
+guid: 7e6ca981de205fe42bb76bfa46044291
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 0 - 21
Assets/Game/Game.cs

@@ -1,21 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class Game : MonoBehaviour
-{
-    private void Awake()
-    {
-        GameSrartEvent.Register(OnGameStart);
-    }
-
-    private void OnGameStart()
-    {
-        transform.Find("Enemies").gameObject.SetActive(true);
-    }
-    private void OnDestroy()
-    {
-        GameSrartEvent.UnRegister(OnGameStart);
-    }
-}

+ 0 - 21
Assets/Scripts/Enemy.cs

@@ -1,21 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class Enemy : MonoBehaviour
-{
-    protected static int count = 0;
-
-    public GameObject GamePassPenel;
-
-    private void OnMouseDown()
-    {
-        count++;
-        Destroy(gameObject);
-        if (count >= 6)
-        {
-            GamePassEvent.Trigger();
-        }
-    }
-
-}

+ 0 - 20
Assets/Scripts/UI/GameStartPanel.cs

@@ -1,20 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class GameStartPanel : MonoBehaviour
-{
-    public GameObject Enemies;
-    private void Start()
-    {
-        transform.Find("BtnStart").GetComponent<Button>()
-            .onClick.AddListener(() =>
-            {
-                gameObject.SetActive(false);
-
-                GameSrartEvent.Trigger();
-            });
-    }
-}

+ 0 - 22
Assets/Scripts/UI/UI.cs

@@ -1,22 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class UI : MonoBehaviour
-{
-    private void Start()
-    {
-        GamePassEvent.Register(OnGamePass);
-    }
-
-    private void OnGamePass()
-    {
-        transform.Find("Canvas/GamePassPanel").gameObject.SetActive(true) ;
-    }
-    private void OnDestroy()
-    {
-        GamePassEvent.UnRegister(OnGamePass);
-    }
-
-}