# 2.6 2023.03.14:版本号(V2.6 BE1.18.30) 包括Mod PC包,手机测试版启动器,和服务器引擎。 示例Demo: [点击此处下载](https://g79.gdl.netease.com/2.6DemoV2.zip) ## 一、更新时间表 1. 在3月14日上线2.6第一个Beta版。 2. 在3月28日上线2.6第二个Beta版。 3. 在4月6日上线2.6稳定版。 4. 在4月14日,全渠道将更新2.6版本玩家包体,玩家将陆续更新到2.6版本,请开发者合理安排更新节奏。 ## 二、更新内容 ### 特效 #### 1. 原版粒子特效支持发射模型 - 在原版微软粒子的基础上支持发射骨骼模型,并且支持纹理和动画,详情请参考这篇文档。 ![图片](../picture/modelparticle.gif) - 示例Demo新增了粒子发射骨骼模型的示例,详情参考NeteaseModelParticleDemo,同时也可在内容库进行下载和查看。 ![图片](../picture/modelparticledemo.png) ### 实体 #### 1.坐骑骑乘API拓展 - 在现有坐骑的接口上,新增了坐骑座位的增删改、骑乘者更换座位、锁定座位等接口,帮助开发者更便捷地实现丰富的骑乘效果。详情请参考这篇文档 ![图片](../picture/riderapi.gif) #### 2.运动器功能优化 - 环绕实体运动器系列接口支持指定环绕半径,详情参考接口[添加环绕实体运动器](../接口/实体/行为.md#AddEntityAroundPointMotion) - 轨迹运动器系列接口支持起始角度和目标角度,详情参考接口[添加轨迹运动器](../接口/实体/行为.md#addentitytrackmotion) > 上述优化对实体、玩家、相机的运动器接口均生效。 ### UI #### 1. 纸娃娃控件拓展 - 网易版纸娃娃(NeteasePaperDoll)控件现在支持绕X、Z轴的拖拽旋转,详见下图: ![图片](../picture/PaperDoll.gif) - 示例Demo新增了网易纸娃娃示例,可在内容库中查看,如下图所示: - ![图片](../picture/neteasepaperdoll.png) #### 2. 模拟HUD操作接口 - 为了帮助开发者更好地定制全新的UI,本次新增了更多模拟原生UI操作的接口,详情见[原生UI](../接口/原生UI.md)接口。 #### 3. 原生界面支持动态修改,面向对象编程 - 对暂停界面,背包界面等原生界面,现在不仅支持在他们之上添加自定义的控件,并且支持以ScreenNode对象管理他们,对他们进行直接修改,详见 原生界面修改 。 - 支持使用接口动态创建删除控件,而不是仅仅通过克隆控件的方式,详见[CreateChildControl](../接口/自定义UI/UI界面.md#createchildcontrol)以及[RemoveChildControl](../接口/自定义UI/UI界面.md#removechildcontrol)接口。 - 支持全局获取当前顶层界面的ScreenNode管理对象,详见[GetTopUINode](../接口/自定义UI/通用.md#gettopuinode)接口。 #### 4. 富文本控件支持换行标签 - 富文本控件现在支持换行标签`
`,详情参考富文本控件介绍。 #### 5. 新增获取部分控件属性接口 - 新增接口[GetToggleState](../接口/自定义UI/UI控件.md#gettogglestate)获取开关控件(toggle)的开关状态。 - 新增接口[GetGridItem](../接口/自定义UI/UI控件.md#getgriditem)获取网格控件(grid)的子节点。 - 新增接口[GetScrollViewPercentValue](../接口/自定义UI/UI控件.md#getscrollviewpercentvalue)获取滚动列表(scroll_view)的滚动条百分比。 #### 6.优化了UI控件示例 - 将原有的UI控件示例模板按照控件的功能拆分为多个脚本,优化了代码的布局和注释。 - 详情可在内容库中查看UI控件示例,如下图所示 ![图片](../picture/uidemo.png) ### 物品 #### 1. 所有自定义物品支持渲染偏移组件 - `netease:render_offset`组件以前仅支持可蓄力物品,现在它可以对任意类型的自定义物品生效了。 #### 2. 自定义物品分页同名合并 - 此前多个mod使用同名物品分页会出现冲突,现在使用同名物品分页的mod物品会被合并显示在同一个分页下了。 ### 方块 #### 1. 方块调色板接口优化 - 方块调色板系列接口支持剔除空气方块,详情参考接口[GetBlockPaletteBetweenPos](../接口/世界/方块组合.md#getblockpalettebetweenpos) ### 玩家 #### 1. 相机交互范围优化 - 修改相机锚点和偏移时,会同步修改玩家的交互范围,避免了调整相机后选取方块的偏移问题,详见[SetCameraOffset](../接口/玩家/摄像机.md#setcameraoffset)和[SetCameraAnchor](../接口/玩家/摄像机.md#setcameraanchor) #### 2. 玩家皮肤渲染优化 - 修复了渲染指定玩家皮肤时,会影响到其他同款皮肤玩家的问题。 ### 其他 #### 1. 支持玩家反馈包含模组日志(全渠道上线后生效) - 现在mod脚本运行出现报错时,将会打印到玩家设备中,玩家反馈模组问题时,可勾选上传此日志,开发者便可在开发者平台下载和查看该日志。 - 日志打印功能默认关闭,开发者需要通过[SetMcpModLogCanPostDump](../接口/通用/调试.md#setmcpmodlogcanpostdump)接口开启该脚本的日志打印功能,接口对每个mod脚本(MCP)独立生效。 - 开启此功能后,除了代码报错会被打印,开发者也可以使用接口[PostMcpModDump](../接口/通用/调试.md#postmcpmoddump)自定义打印MCP日志,此日志也会打印到玩家设备,并通过反馈上传到开发者的组件后台。 > 注意事项: > 1. 此功能依赖玩家客户端和开发者平台的更新,仅在全渠道上线后方可生效。 > 2. 请勿打印过多自定义日志信息,避免玩家的存档大小快速膨胀,影响玩家对模组的体验。 > 3. 日志在玩家本地只保留7天,超期日志自动清理。 #### 2. 新增接口和事件索引表 - 在接口文档中增加了所有接口和事件的文档,供开发者在同一页面进行浏览和搜索,详见[Api索引表](../接口/Api索引表.md)和[事件索引表](../事件/事件索引表.md) ## API更新 - 新增 1. 新增[GetServerTickTime](../接口/通用/工具.md#getserverticktime)(服务端), 获取服务端引擎上一帧的帧消耗时间 1. 新增[SetMcpModLogCanPostDump](../接口/通用/调试.md#setmcpmodlogcanpostdump)(服务端), 设置是否可打印MCP日志 1. 新增[GetMcpModLogCanPostDump](../接口/通用/调试.md#getmcpmodlogcanpostdump)(服务端), 获取是否可打印MCP日志 1. 新增[PostMcpModDump](../接口/通用/调试.md#postmcpmoddump)(服务端), 打印MCP日志 1. 新增[GetTopUINode](../接口/自定义UI/通用.md#gettopuinode)(客户端), 获取Push进来的最顶层界面,包括原生界面 1. 新增[GetUIScreenProxyCls](../接口/自定义UI/通用.md#getuiscreenproxycls)(客户端), 获得原生界面Screen代理基类 1. 新增[ChangeWalkState](../接口/原生UI.md#changewalkstate)(客户端), 切换行走/潜行/跑步状态 1. 新增[ChangeSneakState](../接口/原生UI.md#changesneakstate)(客户端), 切换潜行状态 1. 新增[SimulateJump](../接口/原生UI.md#simulatejump)(客户端), 模拟跳跃 1. 新增[ClickInteractGUI](../接口/原生UI.md#clickinteractgui)(客户端), 模拟点击交互按钮 1. 新增[SetMcpModLogCanPostDump](../接口/通用/调试.md#setmcpmodlogcanpostdump)(客户端), 设置是否可打印MCP日志 1. 新增[GetMcpModLogCanPostDump](../接口/通用/调试.md#getmcpmodlogcanpostdump)(客户端), 获取是否可打印MCP日志 1. 新增[PostMcpModDump](../接口/通用/调试.md#postmcpmoddump)(客户端), 打印MCP日志 1. 新增[SetActorCollidable](../接口/实体/行为.md#setactorcollidable)(服务端), 设置实体是否可碰撞 1. 新增[GetLoadBlocks](../接口/方块/属性.md#getloadblocks)(服务端), 获取已经加载的方块id 1. 新增[OpenClientChunkGeneration](../接口/世界/地图.md#openclientchunkgeneration)(服务端), 开启/关闭客户端区块生成功能。 1. 新增[HasEffect](../接口/实体/状态效果.md#haseffect)(服务端), 获取实体是否存在当前状态效果 1. 新增[GetLoadActors](../接口/实体/属性.md#getloadactors)(服务端), 获取已加载的实体id 1. 新增[GetLoadItems](../接口/物品.md#getloaditems)(服务端), 获取已经加载的物品id 1. 新增[SetEntityLockRider](../接口/实体/行为.md#setentitylockrider)(服务端), 设置坐骑上的实体是否锁定序号 1. 新增[ChangeRiderSeat](../接口/实体/行为.md#changeriderseat)(服务端), 设置骑乘者在当前坐骑上的序号 1. 新增[GetRiders](../接口/实体/行为.md#getriders)(服务端), 获取坐骑上的骑乘者信息 1. 新增[AddEntitySeat](../接口/实体/行为.md#addentityseat)(服务端), 增加坐骑座位 1. 新增[SetEntitySeat](../接口/实体/行为.md#setentityseat)(服务端), 设置坐骑座位的位置、旋转以及允许实体旋转范围 1. 新增[DeleteEntitySeat](../接口/实体/行为.md#deleteentityseat)(服务端), 删除坐骑座位 1. 新增[LockVerticalMove](../接口/控制.md#lockverticalmove)(客户端), 模拟上升或下降 1. 新增[UnLockVerticalMove](../接口/控制.md#unlockverticalmove)(客户端), 解除上升或下降状态 1. 新增[AddPlayerScriptAnimate](../接口/玩家/渲染.md#addplayerscriptanimate)(客户端), 在玩家的客户端实体定义(minecraft:client_entity)json中的scripts/animate节点添加动画/动画控制器 1. 新增[GetModelStyle](../接口/模型.md#getmodelstyle)(客户端), 获取模型类型 1. 新增[GetAllEffects](../接口/实体/状态效果.md#getalleffects)(客户端), 获取实体当前所有状态效果 1. 新增[HasEffect](../接口/实体/状态效果.md#haseffect)(客户端), 获取实体是否存在当前状态效果 1. 新增[CreateChildControl](../接口/自定义UI/UI界面.md#createchildcontrol)(客户端), 在当前界面创建子控件 1. 新增[RemoveChildControl](../接口/自定义UI/UI界面.md#removechildcontrol)(客户端), 移除当前画布中的子控件 1. 新增[GetGridItem](../接口/自定义UI/UI控件.md#getgriditem)(客户端), 根据网格位置获取元素控件 1. 新增[GetScrollViewPercentValue](../接口/自定义UI/UI控件.md#getscrollviewpercentvalue)(客户端), 支持获取当前scroll_view内容的百分比位置 1. 新增[GetToggleState](../接口/自定义UI/UI控件.md#gettogglestate)(客户端), 获取Toggle开关控件的值 1. 新增[PopScreenAfterClientEvent](../事件/UI.md#popscreenafterclientevent)(客户端), 新增PopScreenAfterClientEvent,当弹出动作全部完成时触发 1. 新增[CloseNeteaseShopEvent](../事件/UI.md#closeneteaseshopevent)(客户端), 玩家关闭商城界面的时候抛出的事件 - 调整 1. 调整[OpenPauseGui](../接口/原生UI.md#openpausegui)(客户端), 增加使用说明 1. 调整[OpenChatGui](../接口/原生UI.md#openchatgui)(客户端), 增加使用说明 1. 调整[OpenVoiceGui](../接口/原生UI.md#openvoicegui)(客户端), 补充使用说明 1. 调整[AddEntityTrackMotion](../接口/实体/行为.md#addentitytrackmotion)(服务端), 给实体(不含玩家)轨迹运动器添加朝向控制 1. 调整[AddEntityAroundEntityMotion](../接口/实体/行为.md#addentityaroundentitymotion)(服务端), 对实体环绕运动器可以指定半径 1. 调整[AddPlayerTrackMotion](../接口/玩家/行为.md#addplayertrackmotion)(服务端), 给玩家轨迹运动器添加朝向控制 1. 调整[AddPlayerAroundEntityMotion](../接口/玩家/行为.md#addplayeraroundentitymotion)(服务端), 对实体环绕运动器可以指定半径 1. 调整[GetBlockPaletteBetweenPos](../接口/世界/方块组合.md#getblockpalettebetweenpos)(服务端), 增加eliminateAir参数,可决定生成的方块调色板中是否剔除多余的空气方块。 1. 调整[SetPlayerRideEntity](../接口/玩家/行为.md#setplayerrideentity)(服务端), 支持设置玩家成为第n个骑乘者 1. 调整[SetRiderRideEntity](../接口/实体/行为.md#setriderrideentity)(服务端), 支持设置玩家成为第n个骑乘者 1. 调整[GetInputVector](../接口/控制.md#getinputvector)(客户端), 修复了无法正常获取到LockInputVector的输入量的BUG 1. 调整[LockInputVector](../接口/控制.md#lockinputvector)(客户端), 修复了潜行状态下移动速度不变的BUG,修复了GetInputVector无法正常获取到LockInputVector的输入量的BUG 1. 调整[GetBlockPaletteBetweenPos](../接口/世界/方块组合.md#getblockpalettebetweenpos)(客户端), 增加eliminateAir参数,可决定生成的方块调色板中是否剔除多余的空气方块。 1. 调整[SetCameraOffset](../接口/玩家/摄像机.md#setcameraoffset)(客户端), 修复了设置偏移后,无法正常交互的BUG 1. 调整[SetCameraAnchor](../接口/玩家/摄像机.md#setcameraanchor)(客户端), 修复了设置偏移后,无法正常交互的BUG 1. 调整[AddCameraTrackMotion](../接口/玩家/摄像机.md#addcameratrackmotion)(客户端), 给相机轨迹运动器添加朝向控制 1. 调整[AddCameraAroundEntityMotion](../接口/玩家/摄像机.md#addcameraaroundentitymotion)(客户端), 对实体环绕运动器可以指定半径 1. 调整[GetVariable](../接口/特效/微软粒子.md#getvariable)(客户端), 新增发射器移动速度变量variable.emitter_speed 1. 调整[SetVariable](../接口/特效/微软粒子.md#setvariable)(客户端), 新增发射器移动速度变量variable.emitter_speed 1. 调整[GetMolangValue](../接口/实体/molang.md#getmolangvalue)(客户端), 修复了pc下,molang变量为字符串时,返回值被转换成32位整形的问题 1. 调整[GetStringHash64](../接口/实体/molang.md#getstringhash64)(客户端), 修复了pc下返回值被转换成32位整形的问题 1. 调整[RenderEntity](../接口/自定义UI/UI控件.md#renderentity)(客户端), param新增rotation_axis参数 1. 调整[RenderSkeletonModel](../接口/自定义UI/UI控件.md#renderskeletonmodel)(客户端), param新增rotation_axis参数 1. 调整[RenderBlockGeometryModel](../接口/自定义UI/UI控件.md#renderblockgeometrymodel)(客户端), param新增rotation_axis参数 - 废弃(将在未来不可用) 1. 废弃SetActorCollidable,单独设置客户端不生效,建议设置服务端