meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
developer:mod:scene [2023/03/15 18:36] – 创建 - 外部编辑 127.0.0.1developer:mod:scene [2025/07/24 17:43] (当前版本) – 移除 bibiboxs
行 1: 行 1:
-<markdown> 
-# 引擎场景空间 
  
-> 沙盘引擎公共场景仅包含必要使用的,开发者将在被公开的几个场景内实现自己的逻辑。 
- 
-此场景指的是`Unity.Scene`,也可以理解为引擎内一个“单独的空间”,完全独立的场景画布。 
- 
-只有在基本需要完全隔离环境状态下(完全不同的功能界面),才会改变场景。 
- 
- 
-## 公开场景 
- 
-场景(Scene)是由《沙盘引擎》自带的一种储存介质,经过引擎开发者的框架设计,以下几种场景几乎可以适配大部分情况。 
- 
-| 场景名称  | 优先级 | 加载方式                                                     | 
-| --------- | ------ | ------------------------------------------------------------ | 
-| Native    | 0      | 引擎启动后第一个场景,此时开始加载Mod<br />如果是初次载入则会优先加载引擎<br />重载指令,也会自动跳转到此场景重新加载 | 
-| MainMenu  | 1      | 引擎及模组加载完成后的第一个场景<br />开发者通过API加载到场景 | 
-| Loading   | 2      | 开发者通过API加载到场景(比如加载到世界时,会优先加载此场景) | 
-| World     | 3      | 通过Loading场景加载完成后,自动跳转到此场景<br />此场景不可以直接被加载,也就是说必须通过Loading来加载前置 | 
-| MapEditor | -1     | 地图编辑器场景,不会主动加载                                 | 
- 
- 
- 
-## 场景:Awake 
- 
-**Awake场景**指的是《沙盘引擎》启动后第一个加载的场景,每次游戏周期只会加载一次。 
- 
-场景内容主要会展示《沙盘引擎》Logo以及可能开放的**自定义Logo**,同时在内部加载引擎可能用到的资源,以及开始加载模组相关的全部内容。 
- 
-> 模组的加载主要包括:**模组脚本、模组资源、模组配置文件**等加载。 
-> 
-> 如果其中一项出现了问题,可能会导致引擎报错提示而无法进入游戏(会有UI提示错误信息)。 
- 
- 
- 
-## 场景:MainMenu 
- 
-**MainMenu场景**指的是常规意义上的**【主菜单界面】**,也就是常见游戏启动后的第一个界面*(通常包括启动游戏按钮、设置按钮、结束按钮等)*。 
- 
-此场景通常放置主菜单界面常见的一些形式,你也可以自行设计主菜单界面的背景显示方式。 
- 
-| 背景方式        | 说明                                                         | 案例游戏                      | 
-| --------------- | ------------------------------------------------------------ | ----------------------------- | 
-| 静态UI方式      | 此方式通常不会加载任何地图,只以UI的方式来进行显示主菜单     | 王者荣耀、CS1.6               | 
-| 世界地图+UI方式 | 根据自身游戏需求,建造一张“仅用于主菜单界面”的地图<br />亦或是想实现界面与世界视角交互的效果,只需要在“菜单地图”建造某个区域,当点击按钮后通过代码让视角平滑过渡到此区域即可<br />也可以简约一些,只将加载的世界地图作为展示效果,可以使用贝赛尔曲线等功能进行自动巡航视角 | 我的世界、未转变者、帝国时代3 | 
- 
-需要注意的是,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/MapEditor "地图编辑器")**文档。 
- 
- 
-</markdown>