24_游戏启动逻辑梳理总结

news2025/3/10 14:54:29

首先这个项目从游戏根入口GameRoot.cs的初始化开始

分为 服务层初始化Svc.cs 与 业务系统层初始化Sys.cs

 而服务层 分为 资源加载服务层ResSvc.cs 与 音乐播放服务层AudioSvc.cs

而在 资源加载服务层ResSvc.cs中 初始化了 名字的 配置文件

而音乐播放服务层AudioSvc.cs 暂时没有初始化的类

其中服务层Svc.cs 是服务于 业务系统层Sys.cs的

所以 其服务层的初始化Svc.cs 要先于 业务系统层的初始化Sys.cs

而业务系统层初始化Sys.cs中  是进入登录场景SceneLogin的初始化

初始化完成之后 调用 登录-业务系统层LoginSys.cs 进入登陆场景

在 异步加载登陆场景时 是一个动态的过程 需要更新加载进度

而这个加载进度的更新 是通过 公共业务系统的窗口API(DynamicWnd.cs 和 LoadingWnd.cs)调用的

公共的意思是在每一个界面都可能 使用到这两个窗口业务系统API(DynamicWnd.cs 和 LoadingWnd.cs)

又因为这两个窗口公共业务系统API(DynamicWnd.cs 和 LoadingWnd.cs)会被经常用到

所以这两个脚本的引用 包留放在游戏根入口GameRoot.cs中

当这个登录场景SceneLogin 异步加载完成(val == 1)后  使用回调函数 打开窗口与背景音乐 最后置空 后停止调用

当打开 登录窗口LoginWnd.cs 点击进入游戏后 会读取账号和密码数据并发送网络消息

去请求登录

这里因还未写网络端所以模拟写了请求函数

最后为了代码的简洁写了两个基类(窗口基类WindowsRoos.cs 和 业务系统基类SystemRoot.cs)

using UnityEngine;
using UnityEngine.UI; //文本 命名空间
//功能 : 窗口基类
public class WindowsRoot : MonoBehaviour{
    #region 引用加载资源服务
    protected ResSvc resSvc = null;
    #endregion
    #region 引用音乐播放资源服务
    protected AudioSvc audioSvc = null;
    #endregion
    public void SetWndState(bool isActive = true) {
        //判断当前状态是否和目标状态相同
        if (gameObject.activeSelf != isActive) {
            gameObject.SetActive(isActive);
        }
        if (isActive){
            InitWnd();
        }
        else {
            ClearWnd();
        }
    }
    protected virtual void InitWnd() {
        #region 引用加载资源服务
        //初始化时拿到 加载资源引用
        resSvc = ResSvc.Instance;
        #endregion
        #region 引用音乐播放资源服务
        audioSvc = AudioSvc.Instance;
        #endregion
    }
    protected virtual void ClearWnd() {
        #region 引用加载资源服务
        //清空 加载资源引用
        resSvc = null;
        #endregion
        #region 引用音乐播放资源服务
        audioSvc = null;
        #endregion
    }
    #region 文本设置通法
    protected void SetText(Text txt, string context = ""){
        txt.text = context;
    }
    #endregion
}

窗口基类WindowsRoot.cs 集合了共有的方法

当子类重写设置窗口状态时  根据显示或隐藏 自动初始化窗口 或清理窗口资源

在基类初始化时 拿到了 资源以及声音服务的初始化引用

子类只需要resSvc.或audioSvc.调用即可

也包含了 设置文本组件的方法

而业务系统基类SystemRoot.cs 也是一样的思想

在初始化时 拿到相关引用方便子类调用

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

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

End.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2283101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Datawhale组队学习笔记task2——leetcode面试题

文章目录 写在前面Day5题目1.0112.路径总和解答2.0113路径总和II解答3.0101.对称二叉树解答 Day6题目1.0124.二叉树中的最大路径和解答2.0199.二叉树的右视图解答3.0226.翻转二叉树解答 Day7题目1.0105.从前序与中序遍历序列构造二叉树解答2.0098.验证二叉搜索树解答3.0110.平衡…

2024年博客之星主题创作|2024年蓝桥杯与数学建模年度总结与心得

引言 2024年,我在蓝桥杯编程竞赛和数学建模竞赛中投入了大量时间和精力,这两项活动不仅加深了我对算法、数据结构、数学建模方法的理解,还提升了我的解决实际问题的能力。从蓝桥杯的算法挑战到数学建模的复杂应用,我在这些竞赛中…

【前端】CSS实战之音乐播放器

目录 播放器背景旋转音乐封面按钮进度条音量调节音乐信息按钮的效果JavaScript部分播放和暂停音乐切换音乐信息进度条 音量调节避免拖拽时的杂音音量调节条静音和解除静音 自动下一首实现一个小效果最终效果 播放器背景 <div class"play_box"></div>设置…

VS C++ 配置OPENCV环境

VS C 配置OPENCV环境 1.下载opencv2.安装环境3.opencv环境4.VS配置opencv环境5.EXE执行文件路径的环境lib和dll需要根据是debug还是release环境来区分使用哪个 6.Windows环境 1.下载opencv 链接: link 2.安装环境 双击运行即可 3.opencv环境 include文件路径:opencv\build\…

Windows电脑安装USB Redirector并实现内外网跨网USB共享通信访问

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 我们每天都在与各种智能设备打交道&#xff0c;从手机到电脑&#xff0c;再到各种外设&#xff0c;它们已经…

计算机网络 (54)系统安全:防火墙与入侵检测

前言 计算机网络系统安全是确保网络通信和数据不受未经授权访问、泄露、破坏或篡改的关键。防火墙和入侵检测系统&#xff08;IDS&#xff09;是维护网络系统安全的两大核心组件。 一、防火墙 定义与功能 防火墙是一种用来加强网络之间访问控制的特殊网络互联设备&#xff0c;它…

利用 SAM2 模型探测卫星图像中的农田边界

将 Segment Anything Model Version 2 应用于卫星图像以检测和导出农业地区田地边界的分步教程 &#x1f31f; 简介 手动绘制田地边界是最耗时的任务之一&#xff0c;其准确性取决于绘制者的表现。然而&#xff0c;精确的边界检测在很多领域都有应用。例如&#xff0c;假设您…

高效沟通驱动LabVIEW项目成功

在LabVIEW项目开发中&#xff0c;由于涉及软件、硬件及多方协作&#xff0c;项目沟通效率的高低直接影响开发进度与最终质量。不明确的需求、信息传递中的误解以及跨部门协作的阻碍&#xff0c;常导致项目延误甚至失败。因此&#xff0c;建立高效的沟通机制&#xff0c;确保信息…

CCF开源发展委员会开源供应链安全工作组2025年第1期技术研讨会顺利举行

点击蓝字 关注我们 CCF Opensource Development Committee 2025年1月17日&#xff0c;CCF开源发展委员会供应链安全工作组&#xff08;CCF-ODC-OSS&#xff09;2025年第一期技术研讨会——“大模型时代的开源供应链安全风控技术”于北京黄大年茶思屋顺利举行。本次研讨会邀请了…

智能化加速标准和协议的更新并推动验证IP(VIP)在芯片设计中的更广泛应用

作者&#xff1a;Karthik Gopal, SmartDV Technologies亚洲区总经理 智权半导体科技&#xff08;厦门&#xff09;有限公司总经理 随着AI技术向边缘和端侧设备广泛渗透&#xff0c;芯片设计师不仅需要考虑在其设计中引入加速器&#xff0c;也在考虑采用速度更快和带宽更高的总…

基于ESP32-IDF驱动GPIO输出控制LED

基于ESP32-IDF驱动GPIO输出控制LED 文章目录 基于ESP32-IDF驱动GPIO输出控制LED一、点亮LED3.1 LED电路3.2 配置GPIO函数gpio_config()原型和头文件3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件3.4 代码实现并编译烧录 一、点亮LED 3.1 LED电路 可以看到&#x…

电商网站项目代码

SCHUTZ鞋类电商网站&#xff1a;用代码打造时尚王国 ——零基础也能看懂的现代网页设计揭秘 开篇&#xff1a;当高跟鞋遇见代码 想象你走进一家奢侈品鞋店——灯光优雅&#xff0c;商品陈列如艺术品&#xff0c;轻轻一点就能试穿最新款凉鞋。这不是米兰的实体店&#xff0c;而…

Jenkins上生成的allure report打不开怎么处理

目录 问题背景&#xff1a; 原因&#xff1a; 解决方案&#xff1a; Jenkins上修改配置 通过Groovy脚本在Script Console中设置和修改系统属性 步骤 验证是否清空成功 进一步的定制 也可以使用Nginx去解决 使用逆向代理服务器Nginx&#xff1a; 通过合理调整CSP配置&a…

3个基于.Net开发的、开源远程管理工具

盘点3个基于.Net开发的、开源Windows远程管理工具。 1、Quasar 这是一个基于 C#开发的、开源的快速、轻量级远程管理工具&#xff0c;是一个高稳定性和易于使用的的远程管理工具。它支持TCP协议&#xff0c;适用于IPv4和IPv6&#xff0c;加密通信保护隐私。功能丰富&#xff…

游戏AI,让AI 玩游戏有什么作用?

让 AI 玩游戏这件事远比我们想象的要早得多。追溯到 1948 年&#xff0c;图灵和同事钱伯恩共同设计了国际象棋程序 Turochamp。之所以设计这么个程序&#xff0c;图灵是想说明&#xff0c;机器理论上能模拟人脑能做的任何事情&#xff0c;包括下棋这样复杂的智力活动。 可惜的是…

LogicFlow 一款流程图编辑框架

LogicFlow是什么 LogicFlow是一款流程图编辑框架&#xff0c;提供了一系列流程图交互、编辑所必需的功能和灵活的节点自定义、插件等拓展机制。LogicFlow支持前端自定义开发各种逻辑编排场景&#xff0c;如流程图、ER图、BPMN流程等。在工作审批流配置、机器人逻辑编排、无代码…

安宝特方案 | 智能培训:安宝特AR如何提升企业技能培训的效率与互动性

随着企业不断推进数字化转型&#xff0c;传统培训方式已无法满足现代企业对高效、灵活培训的需求。尤其在技术更新频繁、工艺流程复杂、员工流动性大的环境中&#xff0c;传统培训模式的局限性愈加明显。为了提升培训质量、降低培训成本&#xff0c;并帮助员工迅速掌握新技能&a…

WIN11 UEFI漏洞被发现, 可以绕过安全启动机制

近日&#xff0c;一个新的UEFI漏洞被发现&#xff0c;可通过多个系统恢复工具传播&#xff0c;微软已经正式将该漏洞标记为追踪编号“CVE-2024-7344”。根据报告的说明&#xff0c;该漏洞能让攻击者绕过安全启动机制&#xff0c;并部署对操作系统隐形的引导工具包。 据TomsH…

【深度学习入门】深度学习知识点总结

一、卷积 &#xff08;1&#xff09;什么是卷积 定义&#xff1a;特征图的局部与卷积核做内积的操作。 作用&#xff1a;① 广泛应用于图像处理领域。卷积操作可以提取图片中的特征&#xff0c;低层的卷积层提取局部特征&#xff0c;如&#xff1a;边缘、线条、角。 ② 高层…

FastDFS的安装及使用

分布式存储发展历程 前段时间 618 活动火热进行&#xff0c;正是购物的好时机。当我们访问这些电 商网站的时候&#xff0c;每一个商品都会有各式各样的图片展示介绍&#xff0c;这些图 片一张两张可以随便丢在服务器的某个文件夹中&#xff0c;可是电商网站如此 大体量的…