meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
developer:mod:scene [2023/03/15 18:36] – 创建 - 外部编辑 127.0.0.1 | developer:mod:scene [2025/07/24 17:43] (当前版本) – 移除 bibiboxs | ||
---|---|---|---|
行 1: | 行 1: | ||
- | < | ||
- | # 引擎场景空间 | ||
- | > 沙盘引擎公共场景仅包含必要使用的,开发者将在被公开的几个场景内实现自己的逻辑。 | ||
- | |||
- | 此场景指的是`Unity.Scene`,也可以理解为引擎内一个“单独的空间”,完全独立的场景画布。 | ||
- | |||
- | 只有在基本需要完全隔离环境状态下(完全不同的功能界面),才会改变场景。 | ||
- | |||
- | |||
- | ## 公开场景 | ||
- | |||
- | 场景(Scene)是由《沙盘引擎》自带的一种储存介质,经过引擎开发者的框架设计,以下几种场景几乎可以适配大部分情况。 | ||
- | |||
- | | 场景名称 | ||
- | | --------- | ------ | ------------------------------------------------------------ | | ||
- | | Native | ||
- | | MainMenu | ||
- | | Loading | ||
- | | World | 3 | 通过Loading场景加载完成后,自动跳转到此场景< | ||
- | | MapEditor | -1 | 地图编辑器场景,不会主动加载 | ||
- | |||
- | |||
- | |||
- | ## 场景:Awake | ||
- | |||
- | **Awake场景**指的是《沙盘引擎》启动后第一个加载的场景,每次游戏周期只会加载一次。 | ||
- | |||
- | 场景内容主要会展示《沙盘引擎》Logo以及可能开放的**自定义Logo**,同时在内部加载引擎可能用到的资源,以及开始加载模组相关的全部内容。 | ||
- | |||
- | > 模组的加载主要包括:**模组脚本、模组资源、模组配置文件**等加载。 | ||
- | > | ||
- | > 如果其中一项出现了问题,可能会导致引擎报错提示而无法进入游戏(会有UI提示错误信息)。 | ||
- | |||
- | |||
- | |||
- | ## 场景:MainMenu | ||
- | |||
- | **MainMenu场景**指的是常规意义上的**【主菜单界面】**,也就是常见游戏启动后的第一个界面*(通常包括启动游戏按钮、设置按钮、结束按钮等)*。 | ||
- | |||
- | 此场景通常放置主菜单界面常见的一些形式,你也可以自行设计主菜单界面的背景显示方式。 | ||
- | |||
- | | 背景方式 | ||
- | | --------------- | ------------------------------------------------------------ | ----------------------------- | | ||
- | | 静态UI方式 | ||
- | | 世界地图+UI方式 | 根据自身游戏需求,建造一张“仅用于主菜单界面”的地图< | ||
- | |||
- | 需要注意的是,MainMenu界面虽然也可以加载World世界,但在**MainMenu**场景下创建的World将不会激活任何World.js的脚本(World.js脚本只在World场景有效),在主菜单场景下可以在加载地图前,使用API`SetVirtualWorldScript(脚本名)`来执行指定的“世界脚本”,但不会有任何同步效果,因为更像是一个单机版的世界。 | ||
- | |||
- | |||
- | |||
- | ## 场景:Loading | ||
- | |||
- | **Loading场景**指的是在加载任何预制场景时,遇到可能需要加载资源的场景时会自动激活。 | ||
- | |||
- | 简单来讲,可能开发者指定按下某个按钮后跳转【地图编辑器】,但引擎仍然会优先加载**Loading**场景,等待加载完成后会自动跳转到目标场景。 | ||
- | |||
- | |||
- | |||
- | ## 场景:World | ||
- | |||
- | **World场景**是整个引擎中最为关键的场景,任何与游戏实际玩法相关的内容均在此场景内。 | ||
- | |||
- | 通常情况下建议只在此场景内进行游戏玩法的开发,最好不要将准备菜单界面的内容放到这里执行(除非知道自己在做什么),也就是说**当玩家加载到World场景时,具体的游戏就应该已经开始了。** | ||
- | |||
- | 有些开发情况可能希望实现准备界面与世界的交互(相机、动作反馈等),这种情况应该在**MainMenu场景**使用Virtual世界功能,而不是放到World场景再来实现,除非知道自己在做什么。 | ||
- | |||
- | **World场景加载完成后`World.js`脚本就将开始执行,`World.js`脚本控制着整个世界的事件和方法,并且属于==服务器权威==(在服务器主机运算,而不是客户端)** | ||
- | |||
- | 当World场景被加载完成后`Client.js`下的一些关于World的事件、方法也将被启用,与`World.js`不同的是,Client脚本下的方法都是基于客户端本地运算的,比如编写相机视角逻辑、GUI等更为合适。 | ||
- | |||
- | *有关**虚拟世界VirtualWorld**的功能介绍,可以参考==引擎功能模块==文档。* | ||
- | |||
- | |||
- | |||
- | ## 场景:MapEditor | ||
- | |||
- | **MapEditor场景**是一个被动加载的场景,只有开发者希望用户打开时才会出现。 | ||
- | |||
- | 当被准备加载时,会优先加载Loading场景,等待加载完成后会进入**《沙盘引擎》地图编辑器**。 | ||
- | |||
- | 此场景下可制作《沙盘引擎》几乎通用的地图文件(.semap)。 | ||
- | |||
- | 有关地图编辑器内容,请查看**[地图编辑器](Reference/ | ||
- | |||
- | |||
- | </ |