• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共151篇

    Unity - 游戏引擎

关闭

返回栏目

关闭

返回Unity - 游戏引擎栏目

104 - 客户端 - GameFacade.cs - 枢纽

作者:

贺及楼

成为作者

更新日期:2023-09-17 10:58:29

  1. public class GameFacade : MonoBehaviour {
  2. private static GameFacade _instance;
  3. //单例模式
  4. public static GameFacade Instance { get {} }
  5. private UIManager uiMng;
  6. private AudioManager audioMng;
  7. private PlayerManager playerMng;
  8. private CameraManager cameraMng;
  9. private RequestManager requestMng;
  10. private ClientManager clientMng;
  11. private bool isEnterPlaying = false;
  12. //进入软件
  13. void Start () {InitManager();//初始化Manager}
  14. // Update is called once per frame
  15. void Update () {}
  16. //移除
  17. private void OnDestroy(){}
  18. //初始化Manager
  19. private void InitManager(){}
  20. //移除经理
  21. private void DestroyManager(){}
  22. //更新经理
  23. private void UpdateManager(){}
  24. //增加请求
  25. public void AddRequest(请求码, 请求){}
  26. //移除请求
  27. public void RemoveRequest(动作码){}
  28. //处理回应
  29. public void HandleReponse(动作码, 数据){}
  30. //展示信息
  31. public void ShowMessage(信息){}
  32. //发送请求
  33. public void SendRequest(请求码, 动作码, 数据){}
  34. //音乐响起
  35. public void PlayBgSound(音乐名字){}
  36. //慢音乐
  37. public void PlayNormalSound(音乐名字){}
  38. //设置用户数据
  39. public void SetUserData(用户数据){}
  40. //获得用户数据
  41. public UserData GetUserData(){}
  42. public void SetCurrentRoleType(RoleType rt){}
  43. public GameObject GetCurrentRoleGameObject(){}
  44. public void EnterPlayingSync(){}
  45. private void EnterPlaying(){}
  46. //游戏开始
  47. public void StartPlaying(){}
  48. //发送攻击
  49. public void SendAttack(伤害){}
  50. //游戏结束
  51. public void GameOver(){}
  52. //更新结果
  53. public void UpdateResult(数据, 胜利数据){}
  54. }
  1. public class GameFacade : MonoBehaviour {
  2. private static GameFacade _instance;
  3. //单例模式
  4. public static GameFacade Instance { get {} }
  5. private UIManager uiMng;
  6. private AudioManager audioMng;
  7. private PlayerManager playerMng;
  8. private CameraManager cameraMng;
  9. private RequestManager requestMng;
  10. private ClientManager clientMng;
  11. private bool isEnterPlaying = false;
  12. //进入软件
  13. void Start () {InitManager();//初始化Manager}
  14. // Update is called once per frame
  15. void Update () {}
  16. //移除
  17. private void OnDestroy(){}
  18. //初始化Manager
  19. private void InitManager(){}
  20. //移除经理
  21. private void DestroyManager(){}
  22. //更新经理
  23. private void UpdateManager(){}
  24. //增加请求
  25. public void AddRequest(ActionCode actionCode, BaseRequest request){}
  26. //移除请求
  27. public void RemoveRequest(ActionCode actionCode){}
  28. //处理回应
  29. public void HandleReponse(ActionCode actionCode, string data){}
  30. //展示信息
  31. public void ShowMessage(string msg){}
  32. //发送请求
  33. public void SendRequest(RequestCode requestCode, ActionCode actionCode, string data){}
  34. //音乐响起
  35. public void PlayBgSound(string soundName){}
  36. //慢音乐
  37. public void PlayNormalSound(string soundName){}
  38. //设置用户数据
  39. public void SetUserData(UserData ud){}
  40. //获得用户数据
  41. public UserData GetUserData(){}
  42. public void SetCurrentRoleType(RoleType rt){}
  43. public GameObject GetCurrentRoleGameObject(){}
  44. public void EnterPlayingSync(){}
  45. private void EnterPlaying(){}
  46. //游戏开始
  47. public void StartPlaying(){}
  48. //发送攻击
  49. public void SendAttack(int damage){}
  50. //游戏结束
  51. public void GameOver(){}
  52. //更新结果
  53. public void UpdateResult(int totalCount, int winCount){}
  54. }
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using Common;
  5. public class GameFacade : MonoBehaviour {
  6. private static GameFacade _instance;
  7. //单例模式
  8. public static GameFacade Instance { get {
  9. if (_instance == null)
  10. {
  11. _instance = GameObject.Find("GameFacade").GetComponent<GameFacade>();
  12. }
  13. return _instance;
  14. } }
  15. private UIManager uiMng;
  16. private AudioManager audioMng;
  17. private PlayerManager playerMng;
  18. private CameraManager cameraMng;
  19. private RequestManager requestMng;
  20. private ClientManager clientMng;
  21. private bool isEnterPlaying = false;
  22. //private void Awake()
  23. //{
  24. // if (_instance != null)
  25. // {
  26. // Destroy(this.gameObject);return;
  27. // }
  28. // _instance = this;
  29. //}
  30. // Use this for initialization
  31. //进入软件
  32. void Start () {
  33. InitManager();//初始化Manager
  34. }
  35. // Update is called once per frame
  36. void Update () {
  37. UpdateManager();
  38. if (isEnterPlaying)
  39. {
  40. EnterPlaying();
  41. isEnterPlaying = false;
  42. }
  43. }
  44. //移除
  45. private void OnDestroy()
  46. {
  47. DestroyManager();
  48. }
  49. //初始化Manager
  50. private void InitManager()
  51. {
  52. uiMng = new UIManager(this);
  53. audioMng = new AudioManager(this);
  54. playerMng = new PlayerManager(this);
  55. cameraMng = new CameraManager(this);
  56. requestMng = new RequestManager(this);
  57. clientMng = new ClientManager(this);
  58. uiMng.OnInit();
  59. audioMng.OnInit();
  60. playerMng.OnInit();
  61. cameraMng.OnInit();
  62. requestMng.OnInit();
  63. clientMng.OnInit();
  64. }
  65. //移除经理
  66. private void DestroyManager()
  67. {
  68. uiMng.OnDestroy();
  69. audioMng.OnDestroy();
  70. playerMng.OnDestroy();
  71. cameraMng.OnDestroy();
  72. requestMng.OnDestroy();
  73. clientMng.OnDestroy();
  74. }
  75. //更新经理
  76. private void UpdateManager()
  77. {
  78. uiMng.Update();
  79. audioMng.Update();
  80. playerMng.Update();
  81. cameraMng.Update();
  82. requestMng.Update();
  83. clientMng.Update();
  84. }
  85. //增加请求
  86. public void AddRequest(ActionCode actionCode, BaseRequest request)
  87. {
  88. requestMng.AddRequest(actionCode, request);
  89. }
  90. //移除请求
  91. public void RemoveRequest(ActionCode actionCode)
  92. {
  93. requestMng.RemoveRequest(actionCode);
  94. }
  95. //处理回应
  96. public void HandleReponse(ActionCode actionCode, string data)
  97. {
  98. requestMng.HandleReponse(actionCode, data);
  99. }
  100. //展示信息
  101. public void ShowMessage(string msg)
  102. {
  103. uiMng.ShowMessage(msg);
  104. }
  105. //发送请求
  106. public void SendRequest(RequestCode requestCode, ActionCode actionCode, string data)
  107. {
  108. clientMng.SendRequest(requestCode, actionCode, data);
  109. }
  110. //音乐响起
  111. public void PlayBgSound(string soundName)
  112. {
  113. audioMng.PlayBgSound(soundName);
  114. }
  115. //慢音乐
  116. public void PlayNormalSound(string soundName)
  117. {
  118. audioMng.PlayNormalSound(soundName);
  119. }
  120. //设置用户数据
  121. public void SetUserData(UserData ud)
  122. {
  123. playerMng.UserData = ud;
  124. }
  125. //获得用户数据
  126. public UserData GetUserData()
  127. {
  128. return playerMng.UserData;
  129. }
  130. public void SetCurrentRoleType(RoleType rt)
  131. {
  132. playerMng.SetCurrentRoleType(rt);
  133. }
  134. public GameObject GetCurrentRoleGameObject()
  135. {
  136. return playerMng.GetCurrentRoleGameObject();
  137. }
  138. public void EnterPlayingSync()
  139. {
  140. isEnterPlaying = true;
  141. }
  142. private void EnterPlaying()
  143. {
  144. playerMng.SpawnRoles();
  145. cameraMng.FollowRole();
  146. }
  147. //游戏开始
  148. public void StartPlaying()
  149. {
  150. playerMng.AddControlScript();
  151. playerMng.CreateSyncRequest();
  152. }
  153. //发送攻击
  154. public void SendAttack(int damage)
  155. {
  156. playerMng.SendAttack(damage);
  157. }
  158. //游戏结束
  159. public void GameOver()
  160. {
  161. cameraMng.WalkthroughScene();
  162. playerMng.GameOver();
  163. }
  164. //更新结果
  165. public void UpdateResult(int totalCount, int winCount)
  166. {
  167. playerMng.UpdateResult(totalCount, winCount);
  168. }
  169. }