# 3.2 2025.1.10:版本号(V3.2 BE1.20.50)包括Mod PC包,手机测试版启动器,和服务器引擎。 示例Demo:前往此处下载 ## 一、更新时间表 1. 在2024年12月11日上线3.2第一个Beta版。 2. 在2024年12月26日上线3.2第二个Beta版。 3. 在2025年1月7日上线3.2稳定版。 4. 在2025年1月10日,全渠道将更新3.2版本玩家包体,玩家将陆续更新到3.2版本,请开发者合理安排更新节奏。 ## 二、重要功能更新 1. 新增自定义指令接口,方便开发者和玩家使用指令调整模组功能。同时支持监听全局指令,支持实体发起指令。 1. 支持动态获取、创建、删除某个实体的行为包组件,可用于更精细地获取实体属性、控制实体行为,详见[GetComponents](../接口/实体/行为.md#getcomponents)系列接口。 1. 横屏商业化接口更新,支持手机端玩家在局内跳转到组件详情页或开发者主页,可用于组件宣传、组件联动、前置组件等场景。 1. 新增实体单例渲染接口,可单独操纵某个实体的渲染,详见[AddTextureToOneActor](../接口/实体/渲染.md#addtexturetooneactor)系列接口。 1. 后处理支持自定义外置纹理,可用于实现光怪陆离的后处理效果,详情参考文档自定义后处理。 1. 新增全局实体和特效功能,此类实体和特效不会因为距离过远超出视野而消失,可用于制作boss和大型装饰品(例如主城的传送门)。 1. 新增实用性接口和事件,如:类似望远镜的拉近视野接口,可用于枪械瞄准镜效果;玩家动作事件和跳跃事件,可用于动作优化类模组;客户端渲染帧事件,按照屏幕帧率高频调用。 1. 优化部分接口和事件,使其更具备实用性,如:支持molang缩写,双端BlockUseEvent支持获取点击比例位置等。详见下方更新日志。 1. 原版UI接口适配微软新触控,接口特性存在一定调整,**请开发者注意适配**。 1. 为了同步微软注册方式,我们隐藏了register_to_create_menu字段,并将其默认值改为true。请使用新版的category字段,详见自定义物品自定义方块。 1. 由于微软在1.20.50版本将方块状态的facing_direction变更为cardinal_direction,所以原版实际使用facing_direction的四面向方块(如箱子类,熔炉类)的aux和实际朝向的对应关系被修改,如您此前利用方块调色板或者GetBlockNew记录了方块数据,在3.2直接按照原数据放出方块将出现部分方块朝向错乱,需要自行适配。现在GetBlockStates接口会返回新的cardinal_direction,而SetBlockStates会继续兼容旧版facing_direction一段时间。 - facing_direction和cardinal_direction的aux对应关系如下: | 朝向 | facing_direction | cardinal_direction | | ---- | ---------------- | ------------------ | | 北面 | 2 | 2 | | 南面 | 3 | 0 | | 西面 | 4 | 1 | | 东面 | 5 | 3 | - 受到影响的方块如下: | 名称 | 方块id | | ------------ | ----------------- | | 箱子 | chest | | 末影箱 | ender_chest | | 陷阱箱 | trapped_chest | | 切石机 | stonecutter_block | | 熔炉 | furnace | | 高炉 | blast_furnace | | 烟熏炉 | smoker | | 燃烧的熔炉 | lit_furnace | | 燃烧的高炉 | lit_blast_furnace | | 燃烧的烟熏炉 | lit_smoker | - 微软在1.20.50继续修改了部分方块ID,如石头、混凝土等,详见3.2版本物品id变更,相关链接请参阅[基岩版扁平化](https://zh.minecraft.wiki/w/%E5%AE%98%E6%96%B9%E9%A1%B5%E9%9D%A2/%E5%9F%BA%E5%B2%A9%E7%89%88%E6%89%81%E5%B9%B3%E5%8C%96),请开发者注意适配。 ## 三、API更新 - 新增 1. 新增[getEntitiesOrBlockFromRay](../接口/世界/实体管理.md#getentitiesorblockfromray)(客户端), 客户端新增获取与射线相交的实体和方块接口 1. 新增[GetBlockTags](../接口/方块/属性.md#getblocktags)(服务端), 获取方块tags 1. 新增[SetBlockEntityData](../接口/方块/方块实体.md#setblockentitydata)(服务端), 设置方块(包括自定义方块)的数据 1. 新增[GetEntitiesBySelector](../接口/实体/属性.md#getentitiesbyselector)(服务端), 根据目标选择器获取实体id列表 1. 新增[AddActorComponent](../接口/实体/行为.md#addactorcomponent)(服务端), 给指定实体自定义添加实体Component 1. 新增[RemoveActorComponent](../接口/实体/行为.md#removeactorcomponent)(服务端), 删除指定实体的指定Component 1. 新增[GetComponents](../接口/实体/行为.md#getcomponents)(服务端), 获取指定实体的生效Components 1. 新增[SetPistonMaxInteractionCount](../接口/世界/游戏规则.md#setpistonmaxinteractioncount)(服务端), 设置活塞/粘性活塞最多推动的方块数量 1. 新增[GetPistonMaxInteractionCount](../接口/世界/游戏规则.md#getpistonmaxinteractioncount)(服务端), 获取活塞/粘性活塞最多推动的方块数量 1. 新增[GetPistonMaxInteractionCount](../接口/世界/游戏规则.md#getpistonmaxinteractioncount)(客户端), 获取活塞/粘性活塞最多推动的方块数量 1. 新增[GetItemTags](../接口/物品.md#getitemtags)(服务端), 获取物品tags 1. 新增[GetItemInfoByBlockName](../接口/物品.md#getiteminfobyblockname)(服务端), 通过方块名称及aux值获取物品信息 1. 新增[GetPlayerDestroyTotalTime](../接口/玩家/行为.md#getplayerdestroytotaltime)(服务端), 获取玩家破坏方块需要的时间,受玩家状态(急迫、潮涌、挖掘疲劳)和手持物及手持物附魔(效率)影响 1. 新增[AddAnimationControllerToOneActor](../接口/实体/渲染.md#addanimationcontrollertooneactor)(客户端), 增加单个生物渲染动画控制器 1. 新增[RemoveAnimationControllerForOneActor](../接口/实体/渲染.md#removeanimationcontrollerforoneactor)(客户端), 移除单个生物渲染动画控制器 1. 新增[AddRenderMaterialToOneActor](../接口/实体/渲染.md#addrendermaterialtooneactor)(客户端), 增加单个生物的渲染材质 1. 新增[AddRenderControllerToOneActor](../接口/实体/渲染.md#addrendercontrollertooneactor)(客户端), 增加单个生物的渲染控制器 1. 新增[RemoveRenderControllerForOneActor](../接口/实体/渲染.md#removerendercontrollerforoneactor)(客户端), 删除单个生物的渲染控制器 1. 新增[AddGeometryToOneActor](../接口/实体/渲染.md#addgeometrytooneactor)(客户端), 增加单个生物渲染几何体 1. 新增[RemoveGeometryForOneActor](../接口/实体/渲染.md#removegeometryforoneactor)(客户端), 删除单个生物的渲染几何体 1. 新增[AddTextureToOneActor](../接口/实体/渲染.md#addtexturetooneactor)(客户端), 增加单个生物的渲染贴图 1. 新增[RemoveTextureForOneActor](../接口/实体/渲染.md#removetextureforoneactor)(客户端), 删除单个生物的渲染贴图 1. 新增[AddParticleEffectToOneActor](../接口/实体/渲染.md#addparticleeffecttooneactor)(客户端), 增加单个生物特效资源 1. 新增[AddSoundEffectToOneActor](../接口/实体/渲染.md#addsoundeffecttooneactor)(客户端), 增加单个生物的音效资源 1. 新增[AddScriptAnimateToOneActor](../接口/实体/渲染.md#addscriptanimatetooneactor)(客户端), 在单个生物的客户端实体定义(minecraft:client_entity)json中的scripts/animate节点添加动画/动画控制器 1. 新增[AddAnimationToOneActor](../接口/实体/渲染.md#addanimationtooneactor)(客户端), 增加单个生物渲染动画 1. 新增[SetActorBlockGeometryScale](../接口/方块/方块几何体模型.md#setactorblockgeometryscale)(客户端), 设置实体的方块几何体模型的缩放倍率。 1. 新增[GetActorBlockGeometryScale](../接口/方块/方块几何体模型.md#getactorblockgeometryscale)(客户端), 获取实体的方块几何体模型的缩放倍率。 1. 新增[SetGlobal](../接口/特效/序列帧.md#setglobal)(客户端), 设置序列帧是否是全局的 1. 新增[CanSee](../接口/世界/地图.md#cansee)(客户端), 添加对象是否可看见目标的客户端接口 1. 新增[GetItemTags](../接口/物品.md#getitemtags)(客户端), 获取物品tags 1. 新增[SetCompassTarget](../接口/物品.md#setcompasstarget)(客户端), 设置指南针的朝向位置 1. 新增[SetCompassEntity](../接口/物品.md#setcompassentity)(客户端), 设置指南针朝向的实体 1. 新增[OpenResourceCenterDetailWindow](../接口/自定义UI/通用.md#openresourcecenterdetailwindow)(客户端), 打开网易资源中心组件详情界面 1. 新增[OpenDeveloperHomeWindow](../接口/自定义UI/通用.md#opendeveloperhomewindow)(客户端), 打开网易资源中心开发者主页 1. 新增[SetControlMode](../接口/控制.md#setcontrolmode)(客户端), 设置控制模式 1. 新增[SetControlModeLock](../接口/控制.md#setcontrolmodelock)(客户端), 设置控制模式是否可以被改变 1. 新增[SetGlobal](../接口/特效/粒子.md#setglobal)(客户端), 设置粒子发射器是否为全局粒子发射器 1. 新增[GetPlayerDestroyTotalTime](../接口/玩家/行为.md#getplayerdestroytotaltime)(客户端), 获取玩家破坏方块需要的时间,受玩家状态(急迫、潮涌、挖掘疲劳)和手持物及手持物附魔(效率)影响 1. 新增[SetPlayerFovScale](../接口/玩家/摄像机.md#setplayerfovscale)(客户端), 新增设置fov倍率功能 1. 新增[AddEntityMarker](../接口/自定义UI/UI控件.md#addentitymarker)(客户端), 增加实体位置标记 1. 新增[AddEntityTextMarker](../接口/自定义UI/UI控件.md#addentitytextmarker)(客户端), 增加实体文本标记 1. 新增[AddStaticMarker](../接口/自定义UI/UI控件.md#addstaticmarker)(客户端), 增加地图上静态位置的标记 1. 新增[AddStaticTextMarker](../接口/自定义UI/UI控件.md#addstatictextmarker)(客户端), 增加地图上静态文本的标记 1. 新增[RemoveEntityMarker](../接口/自定义UI/UI控件.md#removeentitymarker)(客户端), 删除实体位置标记 1. 新增[RemoveEntityTextMarker](../接口/自定义UI/UI控件.md#removeentitytextmarker)(客户端), 删除实体文本标记 1. 新增[RemoveStaticMarker](../接口/自定义UI/UI控件.md#removestaticmarker)(客户端), 删除静态位置标记 1. 新增[RemoveStaticTextMarker](../接口/自定义UI/UI控件.md#removestatictextmarker)(客户端), 删除静态文本标记 1. 新增[RepaintMiniMap](../接口/自定义UI/UI控件.md#repaintminimap)(客户端), 重新绘制小地图 1. 新增[GlobalCommandServerEvent](../事件/世界.md#globalcommandserverevent)(服务端), 服务端全局命令事件 1. 新增[CustomCommandTriggerServerEvent](../事件/世界.md#customcommandtriggerserverevent)(服务端), 新增自定义命令触发事件 1. 新增[OnPlayerActionServerEvent](../事件/玩家.md#onplayeractionserverevent)(服务端), 玩家动作事件 1. 新增[GameRenderTickEvent](../事件/世界.md#gamerendertickevent)(客户端), 客户端渲染帧开始时触发 1. 新增[OnLocalPlayerStartJumpClientEvent](../事件/玩家.md#onlocalplayerstartjumpclientevent)(客户端), 玩家开始跳跃事件 1. 新增[OnLocalPlayerActionClientEvent](../事件/玩家.md#onlocalplayeractionclientevent)(客户端), 玩家动作事件 1. 新增[PlayerActionType](../枚举值/PlayerActionType.md), 玩家动作枚举 - 调整 1. 调整[getEntitiesOrBlockFromRay](../接口/世界/实体管理.md#getentitiesorblockfromray)(服务端), isThrouth拼写错误,调整为isThrough,通过关键词isThrouth = True调用的方法还会再兼容一段时间 1. 调整[HideWalkGui](../接口/原生UI.md#hidewalkgui)(客户端), 新触控接入后原移动按钮已移除,现在该接口控制新触控跑/走按钮 1. 调整[HideSwimGui](../接口/原生UI.md#hideswimgui)(客户端), 调整描述,仅影响十字键操作下的浮潜按钮,摇杆模式上浮=跳跃,下潜=潜行,需要通过HideJumpGui和HideSneakGui来隐藏 1. 调整[SetCrossHair](../接口/原生UI.md#setcrosshair)(客户端), 适配新触控 1. 调整[CreateEngineEntityByNBT](../接口/世界/实体管理.md#createengineentitybynbt)(服务端), 新增isGlobal参数,可创建全局实体,不受视野范围限制 1. 调整[CreateEngineEntityByTypeStr](../接口/世界/实体管理.md#createengineentitybytypestr)(服务端), 新增isGlobal参数,可创建全局实体,不受视野范围限制 1. 调整[SetAttrMaxValue](../接口/实体/属性.md#setattrmaxvalue)(服务端), 支持设置伤害吸收 1. 调整[SetEntityOnFire](../接口/实体/行为.md#setentityonfire)(服务端), 当传入参数seconds小于等于0时,将让着火的实体灭火 1. 调整[RegisterBlockPatterns](../接口/世界/方块组合.md#registerblockpatterns)(服务端), 支持具体方块匹配/通配,namespace:name:aux_value,当aux_value不填或者填*时为通配,如果有具体aux_value时只匹配特定方块 1. 调整[GetBlockBasicInfo](../接口/方块/属性.md#getblockbasicinfo)(服务端), 支持返回minecraft:tags 1. 调整[GetDestroyTotalTime](../接口/世界/方块管理.md#getdestroytotaltime)(服务端), 增加可选挖掘参数 1. 调整[SetCommand](../接口/世界/指令.md#setcommand)(服务端), 支持任意实体entityId 1. 调整[GetItemBasicInfo](../接口/物品.md#getitembasicinfo)(服务端), 支持返回minecraft:tags 1. 调整[SetItemTierSpeed](../接口/物品.md#setitemtierspeed)(服务端), 补充文档,提示开发者可以从物品的userData中获取挖掘速度 1. 调整[GetDestroyTotalTime](../接口/世界/方块管理.md#getdestroytotaltime)(客户端), 增加可选挖掘参数 1. 调整[GetItemBasicInfo](../接口/物品.md#getitembasicinfo)(客户端), 支持返回minecraft:tags 1. 调整[CreateBindEntityNew](../接口/特效/微软粒子.md#createbindentitynew)(客户端), 支持传入空字符串时,绑定到实体根骨骼上 1. 调整[BindEntity](../接口/特效/微软粒子.md#bindentity)(客户端), 支持传入空字符串时,绑定到实体根骨骼上 1. 调整[AddPostProcess](../接口/后处理/自定义.md#addpostprocess)(客户端), index缺省或负值现在会默认添加到最后 1. 调整[Register](../接口/实体/molang.md#register)(客户端), 支持molang变量缩写 1. 调整[UnRegister](../接口/实体/molang.md#unregister)(客户端), 支持molang变量缩写 1. 调整[Set](../接口/实体/molang.md#set)(客户端), 支持molang变量缩写 1. 调整[Get](../接口/实体/molang.md#get)(客户端), 支持molang变量缩写 1. 调整[GetMolangValue](../接口/实体/molang.md#getmolangvalue)(客户端), 支持molang变量缩写 1. 调整[RenderEntity](../接口/自定义UI/UI控件.md#renderentity)(客户端), 支持设置x轴、z轴初始旋转 1. 调整[RenderSkeletonModel](../接口/自定义UI/UI控件.md#renderskeletonmodel)(客户端), 支持设置x轴、z轴初始旋转 1. 调整[RenderBlockGeometryModel](../接口/自定义UI/UI控件.md#renderblockgeometrymodel)(客户端), 支持设置x轴、z轴初始旋转 1. 调整[ServerBlockUseEvent](../事件/方块.md#serverblockuseevent)(服务端), 新增clickX,clickY,clickZ参数,可获取点击点的比例位置 1. 调整[PlayerPickupArrowServerEvent](../事件/物品.md#playerpickuparrowserverevent)(服务端), 调整文档,补充说明抛射物也受此接口监听 1. 调整[PlaceNeteaseStructureFeatureEvent](../事件/世界.md#placeneteasestructurefeatureevent)(服务端), structureName参数可修改 1. 调整[ClientBlockUseEvent](../事件/方块.md#clientblockuseevent)(客户端), 新增clickX,clickY,clickZ参数,可获取点击点的比例位置 1. 调整[GyroSensorChangedClientEvent](../事件/控制.md#gyrosensorchangedclientevent)(客户端), 新增orientation表示当前屏幕朝向 1. 调整[OptionId](../枚举值/OptionId.md), 移除旧版十字键操作 1. 调整[OriginGUIName](../枚举值/OriginGUIName.md), 移除移动状态按钮,新触控有对应的加速按钮和潜行按钮,增加新触控跳跃/潜行枚举 - 废弃(将在未来不可用) 1. 废弃ChangeWalkState,对应按钮已移除,后续不再维护,相关需求可用setSprinting/setSneaking/ChangeSneakState实现 1. 废弃GetWalkState,对应按钮已移除,后续不再维护,相关需求可用isSprinting/isSneaking实现 1. 废弃SetPlayerRideEntity,请使用SetRiderRideEntity 1. 废弃AddEntityMarker,推荐使用UI面向对象miniMapUIControl.AddEntityMarker接口 1. 废弃RemoveEntityMarker,推荐使用UI面向对象miniMapUIControl.RemoveEntityMarker接口 1. 废弃AddStaticMarker,推荐使用UI面向对象miniMapUIControl.AddStaticMarker接口 1. 废弃RemoveStaticMarker,推荐使用UI面向对象miniMapUIControl.RemoveStaticMarker接口 1. 废弃ZoomIn,推荐使用UI面向对象miniMapUIControl.ZoomIn接口 1. 废弃ZoomOut,推荐使用UI面向对象miniMapUIControl.ZoomOut接口 1. 废弃ZoomReset,推荐使用UI面向对象miniMapUIControl.ZoomReset接口 1. 废弃SetHighestY,推荐使用UI面向对象minimapUIControl.SetHighestY接口 1. 废弃AddEntityTextMarker,推荐使用UI面向对象miniMapUIControl.AddEntityTextMarker接口 1. 废弃RemoveEntityTextMarker,推荐使用UI面向对象miniMapUIControl.RemoveEntityTextMarker接口 1. 废弃AddStaticTextMarker,推荐使用UI面向对象miniMapUIControl.AddStaticTextMarker接口 1. 废弃RemoveStaticTextMarker,推荐使用UI面向对象miniMapUIControl.RemoveStaticTextMarker接口