客户端 - 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);
}
}