創建腳本 SystemRoot.cs
因為 業務系統基類的子類 會涉及資源加載服務層ResSvc.cs 和 音樂播放服務層AudioSvc.cs
所以在業務系統基類 提取引用資源加載服務層ResSvc.cs 和 音樂播放服務層AudioSvc.cs
并調用單例初始化
using UnityEngine;
// 功能 : 業務系統基類
public class SystemRoot : MonoBehaviour{protected ResSvc resSvc;protected AudioSvc audioSvc;public virtual void InitSys() {resSvc = ResSvc.Instance;audioSvc = AudioSvc.Instance;}
}
業務系統基類寫好后 那么其系統子類需要進行以下修改
那么其系統子類函數 也不需要寫那么多了
修改前
修改后
using UnityEngine;
//功能 : 登陸注冊業務系統
public class LoginSys : SystemRoot{#region 單例模式public static LoginSys Instance = null;#endregion#region 引用登錄窗口public LoginWnd loginWnd;#endregionpublic override void InitSys() {#region 系統基類的好處base.InitSys();#endregion#region 單例模式Instance = this;#endregionDebug.Log("Init LoginSys...");}//進入登錄界面public void EnterLogin() {//TODO//異步加載登錄界面//并顯示加載進度#region 調用ResSvc單例類resSvc.AsyncLoadScene(Constans.SceneLogin,() => {#region 窗口基類的好處loginWnd.SetWndState();#endregion#region 調用音樂播放服務audioSvc.PlayBGMusic(Constans.BGLogin,true);#endregion});#endregion}
}
以此類推 那么窗口基類WindowsRoot.cs也可以這么做
這樣其 窗口子類就可以很方便使用audioSvc.去調用方法了
要記住在窗口關閉時要 釋放掉 置成空
運行 仍是運行后 先是加載窗口更新顯示加載進度 加載完成后關閉加載界面 加載游戲背景場景 并 打開登錄窗口 播放背景音樂
End.