# 1.22 **2021.04.08:版本号(v1.22 BE1.16.10)** - 重大更新 1. 新增自定义场景,场景内支持以下元素: 1)摄像机 2)骨骼模型 3)序列帧与粒子特效 4)文字面板 详见[虚拟世界](../接口/虚拟世界/索引.md) 2. 常用的原版界面(例如:背包、熔炉、合成台、箱子)可挂接自定义控件,详见 原生界面添加自定义UI使用文档 - 新增 1. 新增[GetNativeScreenManagerCls](../接口/自定义UI/通用.md#getnativescreenmanagercls),获得NativeScreenManager类 1. 新增[GetCustomUIControlProxyCls](../接口/自定义UI/通用.md#getcustomuicontrolproxycls),获得原生界面自定义UI代理基类 1. 新增[SetHudChatStackVisible](../接口/原生UI.md#sethudchatstackvisible),设置HUD界面左上小聊天窗口可见性接口 1. 新增[SetHudChatStackPosition](../接口/原生UI.md#sethudchatstackposition),设置HUD界面左上小聊天窗口位置接口 1. 新增[SpawnResourcesSilkTouched](../接口/世界/实体管理.md#spawnresourcessilktouched),模拟方块精准采集掉落 1. 新增[GetDestroyTotalTime](../接口/世界/方块管理.md#getdestroytotaltime),获取使用物品破坏方块需要的时间 1. 新增[GetOpenContainerItem](../接口/方块/容器.md#getopencontaineritem),获取开放容器的物品 1. 新增[GetRecipesByInput](../接口/世界/配方.md#getrecipesbyinput),通过输入物品查询配方 1. 新增[SetEntityLookAtPos](../接口/实体/属性.md#setentitylookatpos),设置非玩家实体看向某个位置 1. 新增[AddActorAnimationController](../接口/实体/渲染.md#addactoranimationcontroller),增加生物渲染动画控制器 1. 新增[RemoveActorAnimationController](../接口/实体/渲染.md#removeactoranimationcontroller),移除生物渲染动画控制器 1. 新增[AddPlayerParticleEffect](../接口/玩家/渲染.md#addplayerparticleeffect),增加玩家特效资源 1. 新增[AddActorParticleEffect](../接口/实体/渲染.md#addactorparticleeffect),增加生物特效资源 1. 新增[AddPlayerSoundEffect](../接口/玩家/渲染.md#addplayersoundeffect),增加玩家音效资源 1. 新增[AddActorSoundEffect](../接口/实体/渲染.md#addactorsoundeffect),增加生物音效资源 1. 新增[AddPlayerAnimationIntoState](../接口/玩家/渲染.md#addplayeranimationintostate),在玩家的动画控制器中的状态添加动画 1. 新增[AddActorScriptAnimate](../接口/实体/渲染.md#addactorscriptanimate),在生物的客户端实体定义(minecraft:client_entity)json中的scripts/animate节点添加动画/动画控制器 1. 新增[AddActorAnimation](../接口/实体/渲染.md#addactoranimation),增加生物渲染动画 1. 新增[isEntityInLava](../接口/实体/属性.md#isentityinlava),获取实体是否在岩浆中 1. 新增[isEntityOnGround](../接口/实体/属性.md#isentityonground),获取实体是否触地 1. 新增[GetDestroyTotalTime](../接口/世界/方块管理.md#getdestroytotaltime),获取使用物品破坏方块需要的时间 1. 新增[PlayTpAnimation](../接口/玩家/动画.md#playtpanimation),第三人称视角播放玩家通用动作 1. 新增[StopAnimation](../接口/玩家/动画.md#stopanimation),停止播放玩家通用动作 1. 新增[GetRecipesByInput](../接口/世界/配方.md#getrecipesbyinput),通过输入物品查询配方 1. 新增[LockLocalPlayerRot](../接口/实体/属性.md#locklocalplayerrot),在分离摄像机时,锁定本地玩家的头部角度 1. 新增[SetPlayerLookAtPos](../接口/实体/属性.md#setplayerlookatpos),设置本地玩家看向某个位置 1. 新增[VirtualWorldCreate](../接口/虚拟世界/世界.md#virtualworldcreate),创建虚拟世界 1. 新增[VirtualWorldDestroy](../接口/虚拟世界/世界.md#virtualworlddestroy),销毁虚拟世界 1. 新增[VirtualWorldToggleVisibility](../接口/虚拟世界/世界.md#virtualworldtogglevisibility),设置虚拟世界是否显示 1. 新增[VirtualWorldSetCollidersVisible](../接口/虚拟世界/世界.md#virtualworldsetcollidersvisible),设置虚拟世界中模型的包围盒是否显示 1. 新增[CameraSetPos](../接口/虚拟世界/相机.md#camerasetpos),设置相机位置 1. 新增[CameraGetPos](../接口/虚拟世界/相机.md#cameragetpos),返回相机位置 1. 新增[CameraSetFov](../接口/虚拟世界/相机.md#camerasetfov),设置相机视野大小 1. 新增[CameraGetFov](../接口/虚拟世界/相机.md#cameragetfov),获取相机视野大小 1. 新增[CameraSetZoom](../接口/虚拟世界/相机.md#camerasetzoom),设置相机缩放 1. 新增[CameraLookAt](../接口/虚拟世界/相机.md#cameralookat),修改相机朝向 1. 新增[CameraMoveTo](../接口/虚拟世界/相机.md#cameramoveto),设置相机移动动画 1. 新增[CameraStopActions](../接口/虚拟世界/相机.md#camerastopactions),停止相机移动动画 1. 新增[CameraGetZoom](../接口/虚拟世界/相机.md#cameragetzoom),获取相机的缩放值 1. 新增[CameraGetClickModel](../接口/虚拟世界/相机.md#cameragetclickmodel),获取相机当前指向的模型的id 1. 新增[ModelCreateObject](../接口/虚拟世界/模型.md#modelcreateobject),在虚拟世界中创建模型 1. 新增[ModelSetVisible](../接口/虚拟世界/模型.md#modelsetvisible),设置模型可见性 1. 新增[ModelIsVisible](../接口/虚拟世界/模型.md#modelisvisible),返回模型可见性 1. 新增[ModelPlayAnimation](../接口/虚拟世界/模型.md#modelplayanimation),模型播放动画 1. 新增[ModelSetBoxCollider](../接口/虚拟世界/模型.md#modelsetboxcollider),设置模型的包围盒 1. 新增[ModelRemove](../接口/虚拟世界/模型.md#modelremove),销毁模型 1. 新增[ModelRotate](../接口/虚拟世界/模型.md#modelrotate),模型绕某个轴旋转多少度 1. 新增[ModelSetPos](../接口/虚拟世界/模型.md#modelsetpos),设置模型的坐标 1. 新增[ModelGetPos](../接口/虚拟世界/模型.md#modelgetpos),获取模型的坐标 1. 新增[ModelSetRot](../接口/虚拟世界/模型.md#modelsetrot),设置模型的旋转角度 1. 新增[ModelGetRot](../接口/虚拟世界/模型.md#modelgetrot),返回模型的旋转角度 1. 新增[ModelSetScale](../接口/虚拟世界/模型.md#modelsetscale),设置模型的缩放值 1. 新增[ModelMoveTo](../接口/虚拟世界/模型.md#modelmoveto),设置模型平移运动 1. 新增[ModelRotateTo](../接口/虚拟世界/模型.md#modelrotateto),设置模型旋转运动 1. 新增[ModelStopActions](../接口/虚拟世界/模型.md#modelstopactions),停止模型的移动和旋转运动 1. 新增[MoveToVirtualWorld](../接口/虚拟世界/其它对象.md#movetovirtualworld),把对象从主世界移到虚拟世界 1. 新增[BindModel](../接口/虚拟世界/其它对象.md#bindmodel),对象绑定到模型上 1. 新增[BindVirtualWorldModel](../接口/自定义UI/UI界面.md#bindvirtualworldmodel),绑定虚拟世界中的模型 1. 新增[UpdateScreen](../接口/自定义UI/UI界面.md#updatescreen),刷新界面,重新计算各个控件的相关数据 1. 新增[SetHighestY](../接口/自定义UI/UI界面.md#sethighesty),设置绘制地图的最大高度 1. 新增[SetLayer](../接口/自定义UI/UI控件.md#setlayer),外放SetLayer接口 1. 新增[ZoomIn](../接口/自定义UI/UI控件.md#zoomin),放大地图 1. 新增[SetHighestY](../接口/自定义UI/UI控件.md#sethighesty),设置绘制地图的最大高度 1. 新增[InventoryItemChangedServerEvent](../事件/物品.md#inventoryitemchangedserverevent),玩家背包物品变化时的服务端事件 1. 新增[CraftItemOutputChangeServerEvent](../事件/物品.md#craftitemoutputchangeserverevent),拿出生成物品时抛出的事件。 1. 新增[OnRainLevelChangeServerEvent](../事件/世界.md#onrainlevelchangeserverevent),下雨强度改变事件。 1. 新增[OnLightningLevelChangeServerEvent](../事件/世界.md#onlightninglevelchangeserverevent),打雷强度改变事件。 1. 新增[PlaySoundClientEvent](../事件/音效.md#playsoundclientevent),播放场景音效或UI音效事件 1. 新增[PlayMusicClientEvent](../事件/音效.md#playmusicclientevent),播放背景音乐事件 1. 新增[InventoryItemChangedClientEvent](../事件/物品.md#inventoryitemchangedclientevent),玩家背包物品变化时的客户端事件 1. 新增[TimeEaseType](../枚举值/TimeEaseType.md),时间变化类型 1. 新增[VirtualWorldObjectType](../枚举值/VirtualWorldObjectType.md),虚拟世界对象类型 - 调整 1. 调整[StartRecordPacket](../接口/通用/调试.md#startrecordpacket),添加仅支持租赁服与Apollo环境的说明 1. 调整[StopRecordPacket](../接口/通用/调试.md#stoprecordpacket),添加仅支持租赁服与Apollo环境的说明 1. 调整[StartRecordEvent](../接口/通用/调试.md#startrecordevent),添加仅支持租赁服与Apollo环境的说明 1. 调整[StopRecordEvent](../接口/通用/调试.md#stoprecordevent),添加仅支持租赁服与Apollo环境的说明 1. 调整[SetAttrValue](../接口/实体/属性.md#setattrvalue),新增对AttrType.LAVA_SPEED的支持,可设置实体在岩浆中的移动速度 1. 调整[GetAttrValue](../接口/实体/属性.md#getattrvalue),新增对AttrType.LAVA_SPEED的支持,可获取实体在岩浆中的移动速度 1. 调整[SetAttrMaxValue](../接口/实体/属性.md#setattrmaxvalue),新增对AttrType.LAVA_SPEED的支持,可设置实体在岩浆中的最大移动速度 1. 调整[PlayerDestoryBlock](../接口/玩家/行为.md#playerdestoryblock),新增particle参数,用于设置是否开启破坏粒子效果,1:开启,0:关闭,默认为1 1. 调整[SpawnResources](../接口/世界/实体管理.md#spawnresources),新增是否随机采集参数allowRandomness 1. 调整[ChangeEntityDimension](../接口/实体/属性.md#changeentitydimension),该接口无法对玩家使用,玩家请使用ChangePlayerDimension 1. 调整[CreateDimension](../接口/世界/地图.md#createdimension),支持自定义维度的创建 1. 调整[UpgradeMapDimensionVersion](../接口/世界/地图.md#upgrademapdimensionversion),增加使用时机限制的说明:建议仅在游戏启动初始化的时期调用 1. 调整[GetItemBasicInfo](../接口/物品.md#getitembasicinfo),新增itemCategory,itemType,itemTierLevel字段 1. 调整[SetPlayerRespawnPos](../接口/玩家/行为.md#setplayerrespawnpos),新增参数dimensionId,支持设置复活维度 1. 调整[SetCameraPos](../接口/玩家/摄像机.md#setcamerapos),调整设置效果为不存档 1. 调整[SetCameraOffset](../接口/玩家/摄像机.md#setcameraoffset),调整设置效果为不存档 1. 调整[SetCameraAnchor](../接口/玩家/摄像机.md#setcameraanchor),调整设置效果为不存档 1. 调整[SetCameraPitchLimit](../接口/玩家/摄像机.md#setcamerapitchlimit),调整设置效果为不存档 1. 调整[GetItemBasicInfo](../接口/物品.md#getitembasicinfo),新增itemCategory,itemType,itemTierLevel字段 1. 调整[SetVisible](../),添加说明可以设置componentPath为空字符串("")调整整个JSON的显示/隐藏 1. 调整[Clone](../接口/自定义UI/UI界面.md#clone),增加是否同步刷新参数 1. 调整[SetVisible](../接口/自定义UI/UI控件.md#setvisible),添加说明可以通过传入空字符串("")的方式来调整整个JSON的显示/隐藏 1. 调整[WillTeleportToServerEvent](../事件/实体.md#willteleporttoserverevent),补完参数说明中缺失的部分 1. 调整[OnNewArmorExchangeServerEvent](../事件/物品.md#onnewarmorexchangeserverevent),修改当装备为空时,关键字oldArmorDict、newArmorDict的内容说明 - 修复 1. 修复[SetDisableDropItem](../接口/世界/游戏规则.md#setdisabledropitem),修复了禁止丢弃物品后仍可在容器内(如背包、箱子)丢弃物品的问题。 1. 修复[SetDefaultGameType](../接口/世界/游戏规则.md#setdefaultgametype),修复了联机时可能不生效的问题 1. 修复[GetGameRulesInfoServer](../接口/世界/游戏规则.md#getgamerulesinfoserver),修复了always_day可能为错误值的问题 1. 修复[AddBannedItem](../接口/世界/游戏规则.md#addbanneditem),修复禁用打火石后引燃TNT仍起效问题 1. 修复[SetItemTierLevel](../接口/物品.md#setitemtierlevel),修复了等级3及以上时对哭泣的黑曜石无效的问题 1. 修复[SetCameraRot](../接口/玩家/摄像机.md#setcamerarot),修复第一人称下无法设置相机转向问题 - 废弃(将在未来不可用) 1. 废弃HidePlayerName,该接口改名为HideNameTag 1. 废弃SetHurtBy,请使用SetAttackTarget 1. 废弃ResetHurtBy,请使用ResetAttackTarget 1. 废弃GetHurtBy,请使用GetAttackTarget 1. 废弃SpawnItemToPlayerOffHand,请使用接口SetEntityItem 1. 废弃SpawnItemToArmor,请使用SetEntityItem 1. 废弃isInLava,请使用isEntityInLava 1. 废弃isOnGround,请使用isEntityOnGround