15_业务系统基类
创建脚本 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;
#endregion
public override void InitSys() {
#region 系统基类的好处
base.InitSys();
#endregion
#region 单例模式
Instance = this;
#endregion
Debug.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.