文章目录
-
- 一、2.0功能概览
-
- [1.1 地形](#1.1 地形)
-
- [1.1.1 植被染色](#1.1.1 植被染色)
- [1.1.2 3D物理组件和逻辑物理组件染色](#1.1.2 3D物理组件和逻辑物理组件染色)
- [1.1.3 悬崖创建时自动刷纹理](#1.1.3 悬崖创建时自动刷纹理)
- [1.2 成就系统](#1.2 成就系统)
- [1.3 新ECA](#1.3 新ECA)
- [1.4 界面拦截和可拖动](#1.4 界面拦截和可拖动)
- [1.5 音频上限及优先级](#1.5 音频上限及优先级)
- 二、界面编辑器:元件(待补)
- 三、AIGC
-
- [3.1 语音生成](#3.1 语音生成)
- [3.2 图片生成](#3.2 图片生成)
- 四、跳字编辑
- 五、受击表现
- 六、触发器文件优化
-
- [6.1 触发器文件存储结构](#6.1 触发器文件存储结构)
- [6.1.1 文件夹类型](#6.1.1 文件夹类型)
-
- [6.1.2 触发器文件&函数文件](#6.1.2 触发器文件&函数文件)
- [6.1.3 新老触发器格式对比](#6.1.3 新老触发器格式对比)
- [6.2 合版建议](#6.2 合版建议)
- 七、编辑器插件
-
- [7.1 插件分类、获取、修改与删除](#7.1 插件分类、获取、修改与删除)
- [7.2 创建美术资产库插件](#7.2 创建美术资产库插件)
- [7.3 创建游戏系统插件](#7.3 创建游戏系统插件)
- [7.4 编辑器扩展插件](#7.4 编辑器扩展插件)
-
- [7.4.1 使用编辑器扩展插件](#7.4.1 使用编辑器扩展插件)
- [7.4.2 创建编辑器扩展插件](#7.4.2 创建编辑器扩展插件)
- [7.5 插件推荐](#7.5 插件推荐)
-
- [7.5.1 运行时属性面板(在Y3编辑器运行时,查看/修改监听的数据字段)](#7.5.1 运行时属性面板(在Y3编辑器运行时,查看/修改监听的数据字段))
- [7.5.2 练功房逻辑插件](#7.5.2 练功房逻辑插件)
- [7.5.3 抽奖逻辑插件](#7.5.3 抽奖逻辑插件)
- [7.5.4 键盘控制单位移动插件](#7.5.4 键盘控制单位移动插件)
- 八、防作弊功能介绍
-
- [8.1 启用防作弊功能](#8.1 启用防作弊功能)
- [8.2 物品掉落限制](#8.2 物品掉落限制)
- [8.3 Y3地图防作弊策略](#8.3 Y3地图防作弊策略)
- 九、触发器缩略图滚动条功能
- 十、多关卡\场景功能
-
- [10.1 多关卡功能说明](#10.1 多关卡功能说明)
- [10.2 关卡切换与关卡存档](#10.2 关卡切换与关卡存档)
- [1.1 "属性定义"和"局内快捷键"配置移至项目层级](#1.1 “属性定义”和“局内快捷键”配置移至项目层级)
- [1.2 "使用主关卡触发器、物编及表格",新增开关"使用主关卡UI"](#1.2 “使用主关卡触发器、物编及表格”,新增开关“使用主关卡UI”)
一、2.0功能概览
1.1 地形
1.1.1 植被染色
在"地形编辑-植被"中点击开启颜色刷,使用效果:
1.1.2 3D物理组件和逻辑物理组件染色
在【场景编辑 - 选中组件 - 属性编辑】中新增了"染色"项,点击后弹出取色器界面。多选时,使用"染色"会同时使所选的所有物理组件和逻辑物理组件染色:
1.1.3 悬崖创建时自动刷纹理
勾选"自动匹配地表纹理"后,创建悬崖时,将在悬崖表面创建对应的悬崖地表纹理。不勾选则直接使用悬崖创建位置的纹理覆盖悬崖地表纹理。
效果如下:
- 勾选时,若纹理列表中含有即将创建的悬崖对应的地表纹理则直接创建;若纹理列表中不含有即将创建的悬崖对应的地表纹理时,在地表纹理中添加该纹理并创建
- 勾选时,若纹理列表已满且不含有即将创建的悬崖对应的地表纹理时,此时将直接按照创建悬崖的位置的原有地表纹理创建悬崖地表,并弹出提示
1.2 成就系统
编辑器新增了成就系统,日常使用编辑器,可获得经验和灵感币的奖励。经验可提升开发者的荣誉等级,荣誉等级是使用编辑器高阶功能的必备条件。灵感币可用于在资源商城兑换商品,以及用于AI功能的消费。
1.3 新ECA
ECA | ECA |
---|---|
点 - 单位实际寻路距离 | 区域 - 获取场景id |
单位 - 获取单位的仇恨单位 | 单位 - 获取单位的跟随单位 |
单位 - 获取单位类型的属性 | 单位 - 指定单位属性变化事件 |
物品 - 获取单位持有的物品类型 | 物品组 - 物品组里添加物品 |
物品组 - 物品组里删除物品 | 物品组 - 物品是否在物品组中 |
物品组 - 物品组中的随机物品 | 技能 - 伤害是否暴击 |
特殊 - 设置暴击是否触发 | 可破坏物 - 遍历区域内可破坏物(新增-可选参数:筛选规则) |
可破坏物 - 遍历范围内可破坏物(新增-可选参数:筛选规则) | 玩家 - 获取玩家鼠标真实y坐标 |
玩家 - 获取玩家颜色 | 玩家 - 获取玩家鼠标真实x坐标 |
界面 - 设置图片颜色 | 界面 - 控制控件跟随鼠标(新增-可选参数:偏移X,Y) |
界面 - 获取控件的真实长度 | 界面 - 获取控件的真实高度 |
界面 - 设置自定义血条图片 | 界面 - 设置自定义血条可见性 |
界面 - 设置自定义血条文本 | 界面 - 获取界面唯一标识ID,返回字符串 |
链接特效 - 创建到单位(新增-可选参数:跟随挂节点旋转方式) | 场景界面 - 设置场景界面到点,可选参数:离地高度:【实数/整数】 |
表 - 遍历表 | 表 - 是否为空表 |
数组 - 清空数组变量 | 数组 - 删除数组条目(删除【数组变量】中索引为【整数】的值) |
运算 - 求绝对值 | 运算 - 实数转化为字符串 |
计时器 - 设置循环计时器的间隔时间【实数/整数】 | 计时器 - 设置循环计时器的间隔帧数 |
镜头 - 获取本地玩家镜头实数属性 | 镜头 - 获取本地玩家镜头整数属性 |
1.4 界面拦截和可拖动
优化了界面拦截和可拖动的逻辑。
- 优化前,只拦截点击事件;优化后,拦截所有事件(点击悬停移入移出等)。
- 优化前,左键和右键都可以;优化后,只对左键生效
1.5 音频上限及优先级
音频数量管理 :细节 - 地图设置 - 音频设置中,可以设置全局音频上限,用以管理游戏中可以同时播放的音频数量,出于性能考虑,不建议超过40个。
在 物编 - 声音 中可以对声音编辑优先级,当同时播放的音频达到全局音频上限时,会优先销毁优先级低的音频,当有多个优先级相同的音频时,会优先销毁其中先创建的音频。
二、界面编辑器:元件(待补)
三、AIGC
3.1 语音生成
在游戏中,配音可以增强游戏的故事和情感表达,提供角色的声音特征和个性化,增加游戏的沉浸感和真实感。在新版本中,编辑器将支持通过文字生成对应的语音资源。
在资源管理器中声音的Tab下,点击【+声音】,会弹出声音编辑的弹窗:
输入想要转化声音的文本,选择想要的音色和情绪,点击试听进行生成。目前仅支持中文,字数需要小于100。
如果想要批量转化文本,需要先选择声音文件(excel文件)。声音文件的格式可以参考模板,表头分别为文件名、想要转化的文本、音色、情绪。
点击【浏览】添加准备好的excel声音文件,点击解析,选择想要转化的语音,点击批量成即可:
3.2 图片生成
四、跳字编辑
使用跳字编辑器制作跳字,效率会比使用界面编辑器高三倍以上,但如果地图比较简单没有太多单位依然可以使用ui来制作相关功能。
五、受击表现
使用受击闪白功能可以大大的增强游戏的打击感,以及命中反馈。本教程将介绍受击表现功能的使用。功能入口:细节-美术效果-受击表现。
- 受击时长:闪白的持续时间
- 闪光间隔:两次闪白之间的最小时间
- 受击颜色:闪白效果的颜色
- 受击闪光单位类型:受伤后会触发闪白效果的单位类型
使用后,单位在受到大于0点伤害(结算前)后会自动触发一次闪白效果
六、触发器文件优化
在之前的版本中,触发器文件是合并为一个trigger.txt文件,非常不方便协作,在当前版本中针对这个问题,我们把trigger文件进行了打散操作,使文件更加原子化,在保留触发器文件顺序的同时提升tirgger文件的可读性,在合版冲突时可以手动合并。
6.1 触发器文件存储结构
触发器文件分为了两个文件,一个是trigger.txt,用于保存全局触发器的结构,另一个是function.txt,用于保存函数库的文件。
6.1.1 文件夹类型
文件夹类型:只记录当前文件夹下的文件key
python
"key": "k-yOwLG2Ee2YRwD-+E6xsS",
"name": "UI",
"type": "trigger_group"
"children": [
"key": 786112514,
"key": 734306311,
"key": 333193219,
"key": 1496309785,
]
children字段只记录当前文件夹下的文件key
6.1.2 触发器文件&函数文件
需要新增parent字段,记录父级文件。所有文件同级,新增文件则在trigger文件后直接新增触发器结构。
python
{
"children": null,
"key": 734306311,
"name": "Init Data",
"type": "file"
"parent":"k-yOwLG2Ee2YRwD-+E6xsS"
},
Type
:文件类型,有函数、文件夹、触发器等类型Parent
:文件父级的key,在合版时需要注意填写Name
:文件名Key
:该文件的唯一IDChild
:为该文件下的子文件结构,填写的顺序与文件顺序相关,合版时注意填写
6.1.3 新老触发器格式对比
老格式:
新格式:触发器与函数库分文件存储,trigger.txt存储触发器文件,function.txt存储函数文件
最外层需要一个type为folder
,key为root
的根节点逻辑块,存储最外层文件顺序:
6.2 合版建议
在新增eca时需要及时上传至主干,保证trigger与function结构的稳定,如果出现冲突,可以手动填写parent与child,只需要保证parent与child字段正确,trigger字段在文件中的顺序可以忽略。删除操作同理,需要注意parent与child。
七、编辑器插件
7.1 插件分类、获取、修改与删除
插件可以扩展编辑器的功能,可以快速获取其他人提供的成套逻辑或资源,从而在此基础上快速实现自己的游戏玩法,提高开发效率。点击【插件】-【插件管理】即可打开插件管理面板。
依使用类型和适用范围的不同,插件可分为【编辑器扩展】、【游戏系统】、【美术资产库】三种。其中,从商店获取的【编辑器扩展】类型插件是已经打包完成的应用程序,因此无法修改。
- 购买插件:目前,插件商城已经整合至资源商城中。你可以打开资源商城,或在【插件】选项内点击【插件商城】即可购买相应的插件。
- 导入/修改插件:购买之后,在资源商城的【我的资产】页面内,点击即可导入相应的插件。导入完成后,您可以自由对插件内容进行修改以适应您游戏的实际开发需求。ECA等脚本内容以及以插件方式导入的各类资源都可以被修改。
- 删除插件 :点击插件管理面板内的卸载按钮,编辑器即会执行卸载流程。
- 制作插件 :你可以将自己制作好的游戏逻辑玩法或美术资源打包为插件,也可以根据提供的API开发自己的扩展插件来扩展编辑器的功能。在插件管理面板-插件制作标签页内,点击右下角的【新建自定义插件】按钮,即可创建自己的插件。
编辑器插件分三类:
- 美术资产库插件:插件完全由资源组成,例如各种模型、声音、图片、特效等,应该制作。如果后续想在此插件基础上添加相关逻辑的想法,也可以创建游戏系统插件。
- 游戏系统插件:件包含一些制作好的单位或技能,也包含一些游戏系统和玩法的ECA逻辑和表格,或者是包含一些成套或可复用的UI
- 编辑器扩展插件:对编辑器编辑功能进行扩展(例如批量创建、快捷高效地编辑数据或在额外的面板中修改对应内容),或者在游戏运行时进行一些进阶的操作。
游戏系统插与美术资产库插件,在导入后即可正常使用。您可以像使用自定义导入的内容一样使用和修改这些资源。创建完成后,你可以通过编辑功能修改将要包含到插件中的各项内容。若想要移除自己创建的插件,则可以点击删除按钮。与卸载操作不同,删除操作只会移除插件本身的结构,对于包含在插件中的各项内容不会造成影响。
7.2 创建美术资产库插件
点击【新建自定义插件】,在弹出窗口中填写插件名并选择【美术资产库】类型。随后,勾选您需要打包为插件使用的各类内容,点击下一步。
7.3 创建游戏系统插件
目前您可以将以下内容打包为游戏系统插件使用:
- 全局ECA、函数库
- 各类物编对象(单位、物品等)
- UI组件、美术资源
- 表格
点击【新建自定义插件】,在弹出窗口中填写插件名并选择【游戏系统】类型:
随后,勾选您需要打包作为插件使用的各类内容,点击下一步:
如果您的插件涉及到一些自定义的单位或玩家属性,可先在属性定义点击【添加】按钮,在弹出的下拉框内选择对应的属性。
选择自定义属性,相应的属性即会被打包进插件中;被打包到插件中的属性会在插件被导入后自动创建。
7.4 编辑器扩展插件
7.4.1 使用编辑器扩展插件
在Y3编辑器中,编辑器扩展插件是独立运行于编辑器进程的应用程序,插件与编辑器进程间会相互通信,实现在插件内修改编辑器数据或执行编辑器动作的操作(反之亦可)。
当您下载或创建了一个编辑器扩展插件后,您可以点击插件管理面板内对应插件右上角的开关来启用或关闭插件。如果在【我的插件】标签页启动某个编辑器扩展插件,则会根据该插件打包后的文件运行插件:
若在【插件制作】标签页启动相同的插件,则会根据实际的源码运行该插件:
根据入口不同,实际运行的程序也存在区别,使用时,请先查看运行是否符合预期。运行打包文件时,可以先进行源码的修改和编辑,避免修改源码引入bug,耽误开发进度。
7.4.2 创建编辑器扩展插件
编辑器扩展类的插件需要使用python2.7编写,需要使用的API文档目前仍在完善中。制作前,需要:
- 在本地安装python2.7,并确保环境变量配置正确
- 确保python2.7全局环境中未安装pyqt相关库
- 若您想在商店上传和分发自己的插件,需要安装PyInstaller库,推荐版本3.6
新建自定义插件时,选择【编辑器扩展】类型后,即可在本地创建一个空白的扩展插件模板。
点击【查看】按钮跳转到插件的目录,在目录内编写相应的脚本并保存后,在插件面板内点击插件运行开关来运行插件。如果要上传到商城,需要先打包本地的插件文件再上传。
7.5 插件推荐
7.5.1 运行时属性面板(在Y3编辑器运行时,查看/修改监听的数据字段)
想要制作一些较为复杂的数值游戏,但又觉得提前修改人物的等级不太方便?想要先测试一些地图后期的设计,但每次都不得不重新打一遍感觉太浪费时间?想为此制作一些调试用的面板或逻辑,但又觉得制作起来太过麻烦性价比不高?使用运行时属性面板插件,你可以在运行时及时查看和调整单位等对象的属性,帮助你快速调试一些通过常规手段难以测试和调试的问题。
配置查看字段:在插件界面内,你可以点击插件面板的【字段配置】按钮来配置想要查看的属性。当游戏运行后,点击场景内相应的单位即可在插件面板内查看相应的属性。
修改单位属性:在插件面板内点击暂停按钮,使游戏进入暂停状态,此时即可在插件面板中编辑选中单位的相应属性。当游戏恢复运行时,相应的修改即会生效。
7.5.2 练功房逻辑插件
练功房在平台上的游戏中非常常见,这个插件提供了一套基础的练功房逻辑,你可以在表格内配置练功房内出现的怪物和击杀奖励。该插件的练功房逻辑以对象池的方式实现,规避了反复创建和销毁单位造成的内存开销和性能损失,优化了游戏性能。
7.5.3 抽奖逻辑插件
这个插件提供了一套简单可配置的抽奖逻辑,你可以在表格内配置各奖品的随机权重。在此基础上,你可以进一步添加物品或优化界面以适配你的游戏的实际需求,也可以做进一步的修改以在其他需要随机权重的场合复用该逻辑。
7.5.4 键盘控制单位移动插件
厌倦了点击移动单位,可以试试这个插件。该插件提供了使用键盘控制单位移动的基本逻辑,并提供四方向和八方向(即允许斜向移动)两种操作方案和对应的示例单位。注意:单位用键盘控制移动会自动屏蔽原有的点击地面移动的功能
八、防作弊功能介绍
8.1 启用防作弊功能
防作弊配置主要用于解决玩家通过本地作弊程序修改与存档有关的内存值,然后将修改后的结果上报存档服务器导致的存档异常增加的情况。打开存档设置界面,你可以点击新建策略组来创建一个防作弊策略。
请注意,防作弊配置目前仅适用于数值型的存档槽位,且每个存档槽位只能被一个防作弊策略约束。如果你无法创建新的策略,检查是否有数值型存档槽位尚未配置防作弊策略。
创建防作弊策略后,你可以在策略条目中查看和编辑防刷分规则,正在编辑策略的存档槽位会在下拉列表中显示。勾选存档槽右边的仅增加,服务器将会把这个存档槽中所有导致下降的操作否决。
编辑防作弊规则 :存档槽下面的界面对应着防刷分策略的表单,点击"加号"可以创建一条防作弊配置。比如下图配置了四个地图等级区间的玩家每天经验存档槽最大的增加量。在每天新增上限的基础上,你还可以通过点击每日最大值右侧的加号,创建单局新增的限制。
- 在1-10级的地图上,玩家每天最多获得100点经验;11-30时,每天最多获得100点经验,以此类推。
- 在1-10级的地图上,在前600秒玩家最多只能获得10点经验,在600到1800,最多获得50点经验,超过1800秒最多获得100点经验。
- 玩家等级超过配置的最大地图等级时,不再受到防刷分规则的约束。
8.2 物品掉落限制
这是一种游戏设计策略,其中随机掉落的逻辑不是在玩家的本地设备上执行,而是在服务器上执行,这样可以减少玩家通过修改本地游戏数据来操纵掉落结果的可能性。
相关ECA | 描述 | 参数说明 | 返回值/行为 |
---|---|---|---|
存档 | 使玩家以服务器掉落策略执行掉落(在服务器上计算,以确保公平性和防止作弊) | 包含一个匿名函数:动作列表,这些操作会在服务器完成掉落计算后执行 | 如果发送掉落请求的客户端不是参数中指定的玩家,那么这个掉落请求将不会生效,但动作列表仍执行(如日志记录或错误处理) |
特殊 - 获取服务器执行结果 | 仅在存档ECA的动作列表中可以看到 | 返回整数。0:成功,1:不满足触发间隔, 2:不满足每日限制,999:服务器链接问题 | |
特殊 - 遍历服务器掉落结果做动作 | 仅在存档ECA的动作列表中可以看到,有几个物品掉落,就遍历几次 | 见第4和第5条 | 执行失败时,列表为空,对应动作不执行 |
特殊 - 获取遍历到的掉落影响存档所在槽位 | 获取当前遍历到的掉落物品将影响的存档槽位的id | 返回一个整数,代表玩家存档中的一个特定槽位的id,这个槽位将被掉落物品更新 | |
特殊 - 获取遍历到的服务器掉落的存档影响值 | 获取当前遍历到的掉落物品对存档槽位的实际增量值。 | 返回整数,代表对应玩家存档id的实际增量 |
8.3 Y3地图防作弊策略
-
避免随机性数据延迟存档 :避免将随机生成的数据(如抽奖结果、属性洗练结果、开箱结果等)延迟存储。
之前讲过,当表格数据被设置为允许覆盖时,其存档模式就变成非实时存档,会有一分钟的存档上传间隔,使用这类类数据的存档槽也就不是实时更新的。当玩家对随机结果不满意,可以在数据上传之前结束游戏进程("杀端"),从而避免不想要的结果被存档。使用禁用覆盖操作的表格存档槽或其它类型存档槽可避免此情况。
-
使用加密表保护关键数据 :使用ECA接口表->加密表格 可通过特殊算法对指定表中的数据进行加密,提高数据的安全性。但是此项操作性能成本较高,故仅推荐对关键数据表进行使用。
-
开启反作弊检查 :官方提供了一些作弊检查机制,可在运行时识别一些作弊情况。比如使用ECA接口单位->开启属性作弊检查 即可开启对某一单位的检查。如果官方机制识别到作弊情况,可通过监听->玩家 -> 检测到作弊 进行监听。
- 若检测到的单位为空单位则代表存档作弊,否则为单位属性作弊。
- 注意!!!检测到存档作弊后,默认会禁止该玩家在本局游戏中再上传所有类型的存档,不过在此事件触发期间仍允许上传(仅限该事件期间,可通过存档对玩家进行例如标记黑名单等方式处理)。
- 设置存档槽限制规则 :根据业务需求,合理设置存档槽的限制规则。
- 上传日期限制/上传时间段限制:限定某个存档槽只能在星期几或某个时间段被修改,适用于一些仅在周期性活动投放的数值。
- 单局分数限制
- 地图等级、每日成长限制
-
使用服务器随机池 :使用服务器随机池代替本地逻辑,配置掉落个数、每日限制、触发间隔等参数。开发者可以为不同的掉落物品设置不同的概率权重,还可以以此更新玩家存档中的特定数值,如玩家的积分、货币或其他资源,减少被玩家恶意串改的可能。
-
利用多人环境的不同步回调进行防作弊检测
如果地图异步问题解决的很好,异步率能够控制在万分之几的状态,且是一个强PVP玩法,可以考虑利用不同步回调进行防作弊逻辑;或者通过GameAPI.add_detail_log指令增加自定义存档检测逻辑,进行多玩家的存档检测,从而防止作弊。
-
其它方式
- 自定义的加密方式:使用特殊的加密方法来隐藏游戏数据,让作弊者难以理解。
- 使用实数类型存档:在存储游戏数据时,尽量使用实数而非简单的整数,因为实数类型在编辑器内部进行了加密逻辑,无法通过界面上显示的值进行内存定位,能够提高破解难度。
- 使用加密表存档:将游戏的存档数据加密,即使作弊者看到这些数据,也无法直接使用。
- 存档表中的值改成字符串:作弊工具(CT代码)会寻找并修改游戏中用于设置数值的函数,然后只需要简单地修改内存中的数值,就可以改变游戏状态。为了应对这种情况,开发者将数值转换为自定义的字符串格式(相当于用自己的方式进行加密)。这样,即使作弊者能够找到这些数值在内存中的位置,他们也无法直接识别和修改这些数值,因为它们不再是简单的数字,而是加密或编码后的字符串。
-
正在制作的防作弊机制
- 指定存档槽数值修改的gamemode:例如仅限gamemode=天梯时修改
- 随机只读存档:通过服务器生成一个随机数值,仅能通过服务器修改
- 请求服务器扣除存档槽数值回调:向服务器请求减少某个存档槽的数值。如果扣除失败,则返回失败;如果扣除成功,则在回调中响应后续逻辑。该机制可以避免被作弊器修改/锁定货币数值的情况。
- 限制存档槽值只能被服务器修改 :禁止存档槽的值被客户端修改。通过服务器随机池和请求服务器扣除数值回调配合使用。 比如玩家获得货币的过程不是在客户端计算的,而是通过服务器的随机池来决定。当玩家需要使用货币时,这个过程也需要通过服务器的接口来完成。玩家的请求会发送到服务器,服务器会处理这个请求,并在服务器端扣除相应的货币数量。这意味着所有的计算和数据变动都在服务器端进行,客户端只负责显示结果。
- 预设存档槽数值变化行为:在编辑器中提前配置多个数值类存档槽的变化行为逻辑,如: 行为ID=1 :元宝-2,金创药 +5。通过纯服务端逻辑,避免客户端自行修改存档槽数值时可能出现的作弊可能。
九、触发器缩略图滚动条功能
在主界面-编辑-通用设置-编辑设置中勾选"缩略图滚动条",可以显示ECA缩略图滚动条。左键点击可以定位到想要的行数,长按左键可以拖动滚动条。错误、点选与搜索结果也会以色块形式显示到普通滚动条上。缩略图可以收起,收起后需要重新在"主界面-编辑-通用设置-编辑设置"打开。
来到触发器编辑界面,选择任意触发器文件,可以看到右侧滚动条右键菜单中的ECA缩略图,可以长按左键拖动右侧缩略图或直接左键点击定位到想要的行数。错误、点选与搜索结果也会以色块形式显示到普通滚动条上。缩略图也可以收起,收起后需要重新在"主界面-编辑-通用设置-编辑设置"打开。
十、多关卡\场景功能
10.1 多关卡功能说明
多关卡是指多个关卡互相独立,特别适合协作开发与项目管理。通过合理利用多关卡功能,可以在开发效率、游戏性能和玩家体验之间找到良好的平衡点。
类别 | 优点 | 说明 |
---|---|---|
模块化开发 | 关卡完全独立 | 各关卡互不干扰,便于分模块编写、调试和维护。 |
协作开发提升效率 | 不同开发者专注单一关卡,减少代码冲突和依赖,提高协作开发效率。 | |
灵活设计 | 可以开发剧情逐步推动的线性关卡,也支持开放世界类游戏的动态切换场景的非线性关卡。 | |
灵活扩展 | 新增关卡不影响现有关卡逻辑,降低维护成本。 | |
性能优化 | 降低内存消耗 | 仅加载当前关卡资源,无需一次性加载全部游戏内容,特别适合大地图或复杂场景游戏。 |
优化加载速度 | 缩短初始加载时间,提升玩家体验。 | |
增强游戏体验 | 便捷的切换机制 | 通过触发器或条件设置,灵活实现场景切换(如任务完成切换)。 |
数据传递支持 | 利用存档功能,保证玩家数据在不同关卡间的连续性。 |
在y3编辑器中,通过主界面 - 文件 - 项目管理可以找到多关卡功能的入口。你可以新建关卡、为现有的关卡重命名、移除关卡、设置主关卡以及切换关卡。主关卡是项目开启时编辑器默认加载的关卡以及玩家进入游戏时默认加载的关卡。
为了降低自动保存造成的效率损耗,2.0版本编辑器不会将整个工程进行自动保存,只会保存正在编辑的关卡。需要复原你的进度时,需要将自动保存目录下的关卡备份粘贴到原工程对应的关卡文件夹中进行覆盖。
10.2 关卡切换与关卡存档
你可以在触发器 - 动作 - 游戏分类中找到切换关卡的语句。
- 执行切换关卡时,所有的玩家会同时切换到新的关卡。建议将切换的语句写在游戏结束的条件中,或制作类似地下城与勇士的房间切换时的投票规则。
- 在切换关卡时,若不进行保存,在当前关卡做过的既有修改将会丢失。
- 进入新的关卡时或回到老的关卡时,游戏进度都将会从游戏初始化开始重新运行。
- 如果在不同关卡中存在需要传递和共享的数据,需要在游戏过程中将这些数据放入存档中,再在切换关卡后从存档加载保存的游戏数据。
- 在关卡切换过程中,若处在上传存档的CD过程中,也会在切换前强制保底上传一次。
存档相关详见存档须知及表格存档、表格加密的使用说明。
1.1 "属性定义"和"局内快捷键"配置移至项目层级
2.0.81版本更新后,首次打开项目时,将读取入口关卡的数据作为使用的配置数据。包含:单位属性、玩家属性、攻防属性、复合属性、英雄经验、伤害公式、局内快捷键。之后在打开任何关卡时,属性定义界面中的配置都将使用项目层级的json文件。(即无论切换至哪个子关卡,查看到的和编辑都是同一份配置数据。)
1.2 "使用主关卡触发器、物编及表格",新增开关"使用主关卡UI"
在项目管理-项目设置中,可进行以下配置。勾选后,切换至任意关卡时,都会读取"入口关卡"的触发器、物编、表格,进行修改后也仍会写入"入口关卡"中。
- 使用主关卡触发器、物编及表格:在非主关卡的情况下,物编,表格,全局触发器仅使用主关卡数据,其他数据使用关卡本身数据
- 使用主关卡UI:UI数据也使用主关卡数据(需先打开上一个功能)
- 切换相同关卡跳过场景加载:通过ECA切换到当前关卡时将不会重复加载地形信息,提高加载速度