客户端 - GameFacade.cs - 枢纽
public class GameFacade : MonoBehaviour { private static GameFacade _instance; //单例模式 public static GameFacade Instance { get {} } private UIManager uiMng; private AudioManager audioMng; private PlayerManager playerMng; private CameraManager cameraMng; private RequestManager requestMng; private ClientManager clientMng; private bool isEnterPlaying = false; //进入软件 void Start () {InitManager();//初始化Manager} // Update is called once per frame void Update () {} //移除 private void OnDestroy(){} //初始化Manager private void InitManager(){} //移除经理 private void DestroyManager(){} //更新经理 private void UpdateManager(){} //增加请求 public void AddRequest(请求码, 请求){} //移除请求 public void RemoveRequest(动作码){} //处理回应 public void HandleReponse(动作码, 数据){} //展示信息 public void ShowMessage(信息){} //发送请求 public void SendRequest(请求码, 动作码, 数据){} //音乐响起 public void PlayBgSound(音乐名字){} //慢音乐 public void PlayNormalSound(音乐名字){} //设置用户数据 public void SetUserData(用户数据){} //获得用户数据 public UserData GetUserData(){} public void SetCurrentRoleType(RoleType rt){} public GameObject GetCurrentRoleGameObject(){} public void EnterPlayingSync(){} private void EnterPlaying(){} //游戏开始 public void StartPlaying(){} //发送攻击 public void SendAttack(伤害){} //游戏结束 public void GameOver(){} //更新结果 public void UpdateResult(数据, 胜利数据){}}
public class GameFacade : MonoBehaviour { private static GameFacade _instance; //单例模式 public static GameFacade Instance { get {} } private UIManager uiMng; private AudioManager audioMng; private PlayerManager playerMng; private CameraManager cameraMng; private RequestManager requestMng; private ClientManager clientMng; private bool isEnterPlaying = false; //进入软件 void Start () {InitManager();//初始化Manager} // Update is called once per frame void Update () {} //移除 private void OnDestroy(){} //初始化Manager private void InitManager(){} //移除经理 private void DestroyManager(){} //更新经理 private void UpdateManager(){} //增加请求 public void AddRequest(ActionCode actionCode, BaseRequest request){} //移除请求 public void RemoveRequest(ActionCode actionCode){} //处理回应 public void HandleReponse(ActionCode actionCode, string data){} //展示信息 public void ShowMessage(string msg){} //发送请求 public void SendRequest(RequestCode requestCode, ActionCode actionCode, string data){} //音乐响起 public void PlayBgSound(string soundName){} //慢音乐 public void PlayNormalSound(string soundName){} //设置用户数据 public void SetUserData(UserData ud){} //获得用户数据 public UserData GetUserData(){} public void SetCurrentRoleType(RoleType rt){} public GameObject GetCurrentRoleGameObject(){} public void EnterPlayingSync(){} private void EnterPlaying(){} //游戏开始 public void StartPlaying(){} //发送攻击 public void SendAttack(int damage){} //游戏结束 public void GameOver(){} //更新结果 public void UpdateResult(int totalCount, int winCount){}}
using System.Collections;using System.Collections.Generic;using UnityEngine;using Common;public class GameFacade : MonoBehaviour { private static GameFacade _instance; //单例模式 public static GameFacade Instance { get { if (_instance == null) { _instance = GameObject.Find("GameFacade").GetComponent<GameFacade>(); } return _instance; } } private UIManager uiMng; private AudioManager audioMng; private PlayerManager playerMng; private CameraManager cameraMng; private RequestManager requestMng; private ClientManager clientMng; private bool isEnterPlaying = false; //private void Awake() //{ // if (_instance != null) // { // Destroy(this.gameObject);return; // } // _instance = this; //} // Use this for initialization //进入软件 void Start () { InitManager();//初始化Manager } // Update is called once per frame void Update () { UpdateManager(); if (isEnterPlaying) { EnterPlaying(); isEnterPlaying = false; } } //移除 private void OnDestroy() { DestroyManager(); } //初始化Manager private void InitManager() { uiMng = new UIManager(this); audioMng = new AudioManager(this); playerMng = new PlayerManager(this); cameraMng = new CameraManager(this); requestMng = new RequestManager(this); clientMng = new ClientManager(this); uiMng.OnInit(); audioMng.OnInit(); playerMng.OnInit(); cameraMng.OnInit(); requestMng.OnInit(); clientMng.OnInit(); } //移除经理 private void DestroyManager() { uiMng.OnDestroy(); audioMng.OnDestroy(); playerMng.OnDestroy(); cameraMng.OnDestroy(); requestMng.OnDestroy(); clientMng.OnDestroy(); } //更新经理 private void UpdateManager() { uiMng.Update(); audioMng.Update(); playerMng.Update(); cameraMng.Update(); requestMng.Update(); clientMng.Update(); } //增加请求 public void AddRequest(ActionCode actionCode, BaseRequest request) { requestMng.AddRequest(actionCode, request); } //移除请求 public void RemoveRequest(ActionCode actionCode) { requestMng.RemoveRequest(actionCode); } //处理回应 public void HandleReponse(ActionCode actionCode, string data) { requestMng.HandleReponse(actionCode, data); } //展示信息 public void ShowMessage(string msg) { uiMng.ShowMessage(msg); } //发送请求 public void SendRequest(RequestCode requestCode, ActionCode actionCode, string data) { clientMng.SendRequest(requestCode, actionCode, data); } //音乐响起 public void PlayBgSound(string soundName) { audioMng.PlayBgSound(soundName); } //慢音乐 public void PlayNormalSound(string soundName) { audioMng.PlayNormalSound(soundName); } //设置用户数据 public void SetUserData(UserData ud) { playerMng.UserData = ud; } //获得用户数据 public UserData GetUserData() { return playerMng.UserData; } public void SetCurrentRoleType(RoleType rt) { playerMng.SetCurrentRoleType(rt); } public GameObject GetCurrentRoleGameObject() { return playerMng.GetCurrentRoleGameObject(); } public void EnterPlayingSync() { isEnterPlaying = true; } private void EnterPlaying() { playerMng.SpawnRoles(); cameraMng.FollowRole(); } //游戏开始 public void StartPlaying() { playerMng.AddControlScript(); playerMng.CreateSyncRequest(); } //发送攻击 public void SendAttack(int damage) { playerMng.SendAttack(damage); } //游戏结束 public void GameOver() { cameraMng.WalkthroughScene(); playerMng.GameOver(); } //更新结果 public void UpdateResult(int totalCount, int winCount) { playerMng.UpdateResult(totalCount, winCount); }}