当前位置:首页 >> 硬件技术 >> 【Unity每日一记】SceneManager场景资源动态加载,修罗战记(unity场景动画)

【Unity每日一记】SceneManager场景资源动态加载,修罗战记(unity场景动画)

cpugpu芯片开发光刻机 硬件技术 1
文件名:【Unity每日一记】SceneManager场景资源动态加载,修罗战记 【Unity每日一记】SceneManager场景资源动态加载


👨‍💻个人主页:@元宇宙-秩沅

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 秩沅 原创

👨‍💻 收录于专栏:unity每日一记

⭐🅰️推荐文章⭐

⭐【软件设计师高频考点暴击】

⭐【Unityc#专题篇】之c#系统化大礼包】

⭐【unity数据持久化】数据管理类_PlayerPrfs

⭐【unity本站最全系列】unity常用API大全一篇文章足以


⭐⭐

文章目录 ⭐🅰️推荐文章⭐⭐⭐🎶SceneManager场景资源动态加载👨‍💻👍加载场景的方法👨‍💻👍SceneManasger的操作1.同步加载2.异步加载<font color=red>**总结**场景管理器 ⭐🅰️系统路线学习点击跳转⭐


🎶SceneManager场景资源动态加载

👨‍💻👍加载场景的方法
SceneManager.LoadScene() ; 场景同步加载SceneManager.LoadSceneSAsyn(); 场景异步加载SceneManage。GetActiveScene().name判断当前场景Application.LoadLevel():同步加载Application.LoadLevelAsync():异步加载Application.LoadLevelAddictive():同步附加式加载Application.LoadLevelAddictiveAsync():异步附加式加载
👨‍💻👍SceneManasger的操作

首先添加场景加载的命名空间Using UnityEngine.SceneManagement ; 而后把游戏场景都保存(拖拽)在 Buid setting 里面,相当于存储场景的目录


1.同步加载

SceneManager.Load( 序列号) ; SceneManager.Load( “场景名”) ;

void Start(){//SceneManager.LoadScene(1);//SceneManager.LoadScene("TriggerTest");}

缺点:加载时造成画面卡帧,因为,在未加载完成前画面是停止的,所以是卡帧现象


2.异步加载

如果当前场景 对象过多或者下一个场景对象过多 这个过程会非常的耗时 会让玩家感受到卡顿 所以异步切换就是来解决该问题的

通常我们和协程一起使用:

SceneManager.LoadAsync(序列号)

SceneManager.LoadAsync(“场景名”)

StartCoroutine(协程迭代器方法() ); //调用协程

AsyncOperation 该类型翻译为异步操作 ,为下面获得异步场景的返回值 AsyncOperation ao= SceneManager.LoadSceneAsync(2);

ao.allowSceneActivation = true 激活场景

ao.progress 场景加载的进度

//-----1.通过事件回调函数 异步加载------AsyncOperation SS = SceneManager.LoadSceneAsync("XXXX");SS.completed += (a) =>{print("加载结束");};SS.completed += LoadOver;private void LoadOver(AsyncOperation ao){print("LoadOver");}//---------2.通过协程异步加载--------void Start(){ //由于场景加载后就不会执行加载后的逻辑了,如果要保存就使用 DontDestroyOnLoad(保留场景加载上个场景的东西)第一个异步方法不会出现该情况DontDestroyOnLoad(this.gameObject); StartCoroutine(LoadScene("XXXX"));}IEnumerator LoadScene(string name){ AsyncOperation SS= SceneManager.LoadSceneAsync(name); //根据游戏规则 自定义进度条变化的条件yield return SS;//1.场景加载结束 更新20%//2.动态加载怪物再更新20%//3.动态加载场景模型进度条顶满 //4.加载结束隐藏进度条} 总结

场景异步加载 和 资源异步加载 一样

1.通过事件回调函数2.协程异步加载

1.事件回调函数 优点:写法简单,逻辑清晰 缺点:只能加载完场景做一些事情 不能在加载过程中处理逻辑

2.协程异步加载 优点:可以在加载过程中处理逻辑,比如进度条更新等 缺点:写法较为麻烦,要通过协程

场景管理器 public class SceneControl{private static SceneControl instance = new SceneControl();public static SceneControl Instance => instance;private SceneControl() { }public void LoadScene(string name, UnityAction action){AsyncOperation SS = SceneControl.LoadSceneAsync(name);SS.completed += (Scene) =>{action();};}} ⭐🅰️系统路线学习点击跳转⭐

⭐【Unityc#专题篇】之c#进阶篇】

⭐【Unityc#专题篇】之c#核心篇】

⭐【Unityc#专题篇】之c#基础篇】

⭐【Unity-c#专题篇】之c#入门篇】

⭐【Unityc#专题篇】—进阶章题单实践练习

⭐【Unityc#专题篇】—基础章题单实践练习

⭐【Unityc#专题篇】—核心章题单实践练习


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!、



协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接