当前位置: 首页 > news >正文

09_异步加载_单例模式_常量类配置_不可销毁

1.首先在 资源加载服务层ResSvc.cs中添加 自定义异步加载函数

using UnityEngine;
using UnityEngine.SceneManagement; //异步加载 命名空间
//功能 : 资源加载服务
public class ResSvc : MonoBehaviour{public void InitSvc(){Debug.Log("Init ResSvc...");}//自定义异步加载public void AsyncLoadScene(string sceneName) {SceneManager.LoadSceneAsync(sceneName);}
}

然后将 资源加载服务层ResSvc.cs设置成 单例类

using UnityEngine;
using UnityEngine.SceneManagement; //异步加载 命名空间
//功能 : 资源加载服务
public class ResSvc : MonoBehaviour{#region 单例模式public static ResSvc Instance = null;#endregionpublic void InitSvc(){#region 单例模式Instance = this;#endregionDebug.Log("Init ResSvc...");}//自定义异步加载public void AsyncLoadScene(string sceneName) {SceneManager.LoadSceneAsync(sceneName);}
}

最后在 登录业务系统层LoginSys.cs 的登录入口函数中调用 异步加载函数

此时需要一个公用的常量类 方便我们在整个项目中查看我们所设置的常量

创建常量类

编写常量类

//功能 : 常量配置
public class Constans {//场景名称public const string SceneLogin = "SceneLogin";
}

最后将 登录场景SceneLogin 加入到BuildSetting中

修改名字 常量类中的加载场景名字 与 Unity编辑器中的场景名字 对应一致

将两个场景都加入到BuildSeeting中

隐藏掉Canvas下的各个窗口

运行项目


最后在GameRoot.cs类的 开始函数中 加入不可销毁语句

using UnityEngine;
//功能 : 游戏启动入口
public class GameRoot : MonoBehaviour{void Start(){#region 不可销毁DontDestroyOnLoad(this);#endregionDebug.Log("Game Start...");//调用自定义初始化Init();}void Init() {//服务模块初始化ResSvc res = GetComponent<ResSvc>();res.InitSvc();//业务系统初始化LoginSys login = GetComponent<LoginSys>();login.InitSys();//进入登陆界面 并 加载相应UIlogin.EnterLogin();}
}

此时游戏根入口GameRoot.cs在整个游戏运行时不论怎么切换就不会被删除或销毁了

注意一点 EventSystem要放在不可销毁的对象子级,这样不会因为事件系统被销毁而触发不了对应事件

End.

http://www.lryc.cn/news/526228.html

相关文章:

  • 士的宁(strychnine)的生物合成-文献精读104
  • 【开源免费】基于Vue和SpringBoot的常规应急物资管理系统(附论文)
  • (Java版本)基于JAVA的网络通讯系统设计与实现-毕业设计
  • ray.rllib 入门实践-2:配置算法
  • 2025-01学习笔记
  • 多线程执行大批量数据查询
  • ChatGPT高效处理图片技巧使用详解
  • leetcode——相交链表(java)
  • RubyFPV开源代码之系统简介
  • 麦田物语学习笔记:创建TransitionManager控制人物场景切换
  • 后端SpringBoot学习项目-用户管理-增删改查-service层
  • 机器学习11-学习路径推荐
  • [ACTF2020 新生赛]Upload1
  • 【PyTorch】0.初识:从吃货角度理解张量
  • 医学图像分析工具09.1:Brainstorm安装教程
  • springboot基于Spring Boot的智慧养老服务系统的设计与实现
  • Linux内核中IPoIB驱动模块的初始化与实现
  • WPS计算机二级•幻灯片的基础操作
  • .NET9增强OpenAPI规范,不再内置swagger
  • 基于微信小程序的民宿预订管理系统
  • 网络(三) 协议
  • 【深度解析Java 20天速成】04_IDEA的安装与使用
  • gitlab处理空文件夹的提交或空文件夹提交失败
  • 计算机网络之链路层
  • Arduino大师练成手册 -- 读取红外接收数据
  • 【Efficient AIGC】SiTo: Similarity-based Token Pruning (AAAI-2025)
  • 数据标注开源框架 Label Studio
  • MyBatis最佳实践:MyBatis 框架的缓存
  • 基于LangGraph、Groq和Tavily打造可以调用外部搜索引擎工具的对话机器人(核心代码 万字详解)
  • 衡量算法性能的量级标准:算法复杂度