15_业务系统基类

创建脚本 SystemRoot.cs

因为 业务系统基类的子类 会涉及资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs

所以在业务系统基类 提取引用资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs

并调用单例初始化

cs 复制代码
using UnityEngine;
// 功能 : 业务系统基类
public class SystemRoot : MonoBehaviour{
    protected ResSvc resSvc;
    protected AudioSvc audioSvc;

    public virtual void InitSys() {
        resSvc = ResSvc.Instance;
        audioSvc = AudioSvc.Instance;
    }
}

业务系统基类写好后 那么其系统子类需要进行以下修改

那么其系统子类函数 也不需要写那么多了

修改前

修改后

cs 复制代码
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.

相关推荐
我要打打代码1 小时前
关于C#线程 任务
开发语言·数据库·c#
Traced back2 小时前
# C# 基础语法完全指南
开发语言·c#
大黄说说2 小时前
TensorRTSharp 实战指南:用 C# 驱动 GPU,实现毫秒级 AI 推理
开发语言·人工智能·c#
芳草萋萋鹦鹉洲哦2 小时前
后端C#,最好能跨平台,桌面应用框架如何选择?
开发语言·c#
kylezhao20193 小时前
C#中开放 - 封闭原则(**Open-Closed Principle,OCP**)
服务器·c#·开闭原则
百锦再5 小时前
《C#上位机开发从门外到门内》2-7:网络通信(TCP/IP、UDP)
tcp/ip·udp·c#·嵌入式·上位机·通信·下位机
wuguan_5 小时前
C#/VP联合编程之绘制图像与保存
开发语言·c#
时光追逐者5 小时前
一个基于 .NET + Vue 实现的通用权限管理平台(RBAC模式),前后端分离模式,开箱即用!
前端·vue.js·c#·.net·.net core
czhc11400756636 小时前
通信组件2.3
c#
wy3136228216 小时前
C#——报错:System.Net.Sockets.SocketException (10049): 在其上下文中,该请求的地址无效。
开发语言·c#·.net