关于前端:Cocos独立游戏开发框架22场景管理器

8次阅读

共计 2007 个字符,预计需要花费 6 分钟才能阅读完成。

引言

本系列是《8 年主程手把手打造 Cocos 独立游戏开发框架》,欢送大家关注分享珍藏订阅。

在游戏开发中,游戏场景是比拟常见的游戏资源,特地是在 3d 游戏中。往往游戏场景的资源都十分的大,咱们切换场景的时候要正当地解决上一个场景的资源并且正当地预加载下一个场景的资源。本文追随笔者一起来看看如何结构一个繁难的场景管理器。

本文源码和源工程在文末获取,小伙伴们自行返回。

什么是场景管理器?

场景管理器是一个负责管理和切换游戏中不同场景的工具,它可能帮忙开发者无效地组织游戏的内容和逻辑,提供晦涩的游戏体验。

每个场景都有本人的资源、角色、物体和规定,而场景管理器的工作就是在这些不同的场景之间进行切换和治理。

场景管理器的次要作用和性能

游戏开发中的场景管理器是一个关键性的组件,它的次要作用和性能包含以下几个方面:

  1. 场景切换和加载:场景管理器容许游戏在不同的游戏场景之间进行切换。这些场景能够是游戏的主菜单、关卡、角色抉择界面、胜利或失败画面等。通过场景管理器,游戏能够在须要时加载新场景,卸载以后场景,从而实现游戏流程的顺畅过渡。
  2. 资源管理:每个场景通常须要不同的资源,如纹理、模型、声音文件等。场景管理器负责加载和卸载这些资源,以确保内存的无效应用。它也能够预加载资源,以缩小在游戏中切换场景时的加载工夫。
  3. 游戏状态治理:场景管理器能够跟踪游戏的以后状态,包含游戏进行中、游戏暂停、游戏完结等。这有助于在不同情境下解决输出、更新游戏逻辑和渲染画面。
  4. 性能优化:场景管理器能够帮忙进步游戏的性能。它确保只有以后流动的场景被渲染和更新,而其余场景能够暂停或休眠状态,从而加重了 CPU 和 GPU 的累赘,升高了能耗。
  5. 用户界面治理:游戏的用户界面通常也是一个场景的一部分。场景管理器能够治理用户界面的显示和暗藏,以及与用户界面元素的交互,如按钮点击、文本输出等。
  6. 事件处理:场景管理器能够解决游戏内产生的各种事件,如碰撞检测、用户输出、触发特殊效果等。它能够将这些事件传递给适当的场景,以触发相应的响应和逻辑。
  7. 游戏状态保留和加载:一些游戏须要反对游戏状态的保留和加载,以便玩家能够随时退出游戏并在当前持续。场景管理器能够帮助实现这一性能,确保游戏状态在不同场景之间的转换时可能正确保留和还原。

构建场景管理器

1. 申明场景管理器

申明SceneManager,继承cc.Component。蕴含 loading 图节点,和预加载的场景列表。

2. 初始化

onLoad初始化,把场景管理器的节点设置成始终存在 cc.game.addPersistRootNode(this.node); 在切换场景时不会被销毁。同时监听场景加载实现回调和预加载须要提前加载的场景。

3. 切换场景

外围接口是 cc.director.loadScene(sceneName),用于加载新场景。其中waitTwoSeconds 只是做个演示成果延时秒,没有其余理论用处。

4. 编写测试代码

增加一个须要加载的指标场景名称和点击办法,点击后加载切换到指标场景。

5. 筹备测试资源

新增一个 SceneManager 节点,并且在它上面增加一个 loading 图和 loading 标签。

把脚本 SceneManager 增加下来,并且配置一下预加载的场景。

测试代码配置一下点击后须要加载切换的指标场景helloworld2

复制筹备一个场景 2。

同样配置一下须要加载切换的指标场景helloworld

7. 测试后果

点击任意地位,显示 loading 图并且切换到场景 2,再次点击则切换回场景 1。

高级的场景管理器

一个高级的场景管理器通常还包含以下性能,小伙伴们能够自行扩大:

  1. 场景切换成果: 提供场景切换时的淡入淡出、过渡动画等成果,以加强游戏的视觉吸引力。
  2. 异步加载资源: 可能异步加载场景和场景所需的资源,以确保游戏性能和加载速度。
  3. 场景堆栈治理: 反对场景的堆栈治理,使得能够回到上一个场景,或者在须要时回到特定的场景。
  4. 场景数据传递: 在不同场景之间传递数据,以实现场景之间的交互和通信。
  5. 性能优化: 对资源加载和卸载进行优化,以缩小内存占用和进步游戏性能。
  6. 主动开释资源: 在不须要的场景中主动开释不再应用的资源,以节俭内存。

总结

本文的重点内容次要有以下几点,不晓得小伙伴们是否曾经了解:

  • 本系列是《8 年主程手把手打造 Cocos 独立游戏开发框架》,欢送大家关注分享珍藏订阅。
  • 场景管理器的简介、次要作用和性能。
  • 高级的场景管理器的扩大计划。
  • 源码通过关注微信公众号“亿元程序员”发送 ”SceneManager” 获取。

AD: 笔者曾经上线的小游戏《贪吃蛇掌机经典》《填色之旅》《重力迷宫球》大家能够自行点击搜寻体验。

感兴趣的小伙伴记得关注微信公众号 ” 亿元程序员 ” 哦,一位有着 8 年游戏行业教训的主程。学习游戏开发不迷路。感谢您的关注,心愿能给到您帮忙, 也心愿通过您能帮忙到大家。

喜爱的能够点个 、点个 在看 哦!请把该文章 分享 给你感觉有须要的其余小伙伴。谢谢。

正文完
 0