2024年10月23日更新日志【10版本】
本次更新为公测版本更新。
除部分严重BUG修复会覆盖旧版本,以下新功能均在编辑器版本10中生效。
开发者可以在编辑器顶部菜单-编辑器版本中进行版本切换。
UI场景
星火编辑器现在支持直接在UI上显示3D场景,并可在其中创建和操作客户端单位和表现。为方便大家使用,星火编辑器引入了『UI场景』的概念。
『UI场景』实际上是两个概念的结合体,用户需要通过客户端触发器来创建和操作后台UI场景。但UI场景在被触发器创建后只是一些内存中的代码,它们仍需要通过界面编辑器的UI控件才能被显示出来,因此用于显示的『UI场景控件』和被显示的『UI场景』其实是两个不同的对象。
UI场景控件
现在要显示UI场景,用户需要在界面编辑器中拖出用于显示UI场景的矩形。打开界面编辑器后,用户可以在『组件库』中找到名为『UI场景』的控件。用户可将一个或多个UI场景控件拖拽到页面上,并调整它们的位置,为后续的场景展示做准备。
UI场景
要展示一个UI 场景,需要先创建一个UI场景对象,并将其绑定到想要显示它的UI场景控件上。
可以通过触发器『创建UI场景』来创建一个新的UI场景。该函数返回新建的UI场景,并可选择是否在场景中显示阴影,以及是否加载指定的地遍场景。
是否使用阴影
- 决定UI场景中是否计算单位和表现的阴影,阴影会占用额外的渲染资源。此外,只有在数编地图设置中关闭『预计算场景阴影』高级选项才能在UI场景中显示阴影。
加载地编场景
-
决定UI场景是否会加载指定的地编场景,如果是,会将指定的地编场景整个载入到UI场景中。但不会包含地上的单位、点和区域。
-
除非有特殊必要,用户不应该加载过大的地编场景,因为地编场景会消耗额外的资源。
默认镜头
-
该参数可以指定一个地编镜头,UI场景在绑定到控件以后会展示这个镜头在UI场景中看到的内容。默认情况下会指定一个查看0,0点位置的第三人称镜头。用户可以选择自己设定的镜头。
-
需要注意的是,用户在想要指定自定义镜头位置时应当选择『固定镜头』或者『手势控制』镜头,跟随镜头会永远位于0,0坐标位置,因为UI场景中不存在主控单位的概念。
-
无论地图再大,一个镜头所能显示的区域也是有限的,这也是为什么不应该加载非必要的大尺寸地编场景的一个原因。
UI场景创建完成后,可通过一个变量记录其返回的UI场景对象,并试用其面向对象方法来在场景中创建、设置单位和表现,并将其绑定到UI场景控件上用于显示。以下列举一下常用的UI场景面向对象方法:
绑定UI场景
- 立刻将UI场景与指定的UI场 景控件绑定(UI场景控件可通过通用的『获取下属控件』函数来获得),使UI场景的内容显示到指定的控件上。『绑定UI场景』方法还可指定控件是静态还是动画绘制指定的UI场景,若选择静态,则控件上显示的画面将永远静止,只会持续显示绑定的那一瞬间UI场景的内容。若不选择静态渲染,则控件会实时反映所绑定的UI场景的变化。
解除绑定UI场景
- 使UI场景与UI场景控件解除绑定,控件不再显示UI场景的内容。
销毁
-
摧毁UI场景,释放其所占用的资源。
-
UI场景会占用额外的资源,用户应当及时对不再使用的UI场景进行清理。
-
切忌每次显示控件时反复创建额外的UI场景且不清理旧的UI场景,这可能导致多次显示控件后,后台大量的UI场景对象堆积。
创建单位/创建表现
- 在UI上显示3D场景通常并不仅仅是为了显示一块光秃秃的地形。因此星火编辑器允许用户像对待普通场景一样,在UI场景里创建和空值单位以及表现。
一个最简单的示例
UI场景单位和表现的特性
使用UI场景的『创建单位』和『创建表现』面向对象方法,用户可以在UI场景中创建数编中指定的客户端单位和表现。这两个函数分别返回所创建的单位或表现对象。UI场景中的客户端单位和表现比普通的单位或表现功能少一些,但依然共享大部分的面向对象方法。
UI场景支持创建单位以及以下几种数编表现:
-
单位节点
-
模型表现节点(持续性和一次性)
-
粒子表现节点(普通和一次性)
-
附属模型表现节点
-
光束表现节点
-
材质表现节点
其它类型的表现节点无法正常在UI场景中创建。
UI场景中的单位和表现可以通过面向对象方法执行以下操作:
-
播放(粒子表现)
-
附着到同场景中的单位或者表现
-
播放动画(通过客户端高级动画API,请参考7月更新日志中的『客户端高级动画支持』段落)
-
替换模型资源(仅限单位和模型表现节点)
-
设置XYZ缩放
-
设置坐标(点)
-
对UI场景中的单位或表现设置坐标时,如果传入的坐标点属于其它场景,不会令单位或者表现跳转场景,仅会使用点中所指定的XYZ坐标来设置单位/表现的位置。
-
设置XYZ坐标
-
销毁(移除UI场景中的单位或表现)
注:用户只能通过面向对象方法来操作UI场景中的单位和表现。此外,UI场景表现在设置高度时需永远指定绝对高度,无法指定地形相对高度。
UI场景的一些其它操作
用户可以通过UI场景的面向对象方法对UI场景做出一些其它的改动。
调整视口尺寸
- 该动作允许用户手动调整UI场景控件所展示的内容的分辨率。当UI场景绑定到控件时,会自动根据控件的当前尺寸来设置视口尺寸(即分辨率),但用户可以在绑定操作完成后手动设置视口尺寸,以调整控件内容的分辨率。
设置镜头
- 为UI场景指定一个新的地编镜头,对应的UI场景控件将显示新镜头所看到的内容。
设置镜头位置
- 以XYZ坐标的方式来设置UI场景镜头的位置
设置镜头旋转
- 以XYZ旋转的方式来设置UI场景镜头的旋转
模拟多人调试
星火编辑器做的游戏自带服务器,非常适合多人游戏。但是在过去一段时间,多人游戏的调试一直有一定的门槛:开发者需要有多个设备,还无法比较方便的查看日志。
本次更新我们为开发者提供了『模拟多人调试』功能,可以进行最多4个玩家的模拟多人调试。
此外,还可以通过设置『延迟连入时间』来模拟不同加载速度的玩家体验。