# 2.5
2022.12.06:版本号(v2.5 BE1.18.30)
包括Mod PC包,手机测试版启动器,和服务器引擎。
## 一、温馨提示
1. 在12月6日,上线2.5第一个beta版。
2. 在12月20日,上线2.5第二个beta版。
3. 在12月29日,上线2.5的稳定版。
4. 在2023年1月6日,全渠道将更新2.5版本玩家包体,玩家将陆续更新到2.5版本,请开发者合理安排更新节奏。
5. 从2.5版本开始,SDKDemo示例转移至MC studio内容库→作品模板→勾选**SDK示例**标签,不再提供压缩包下载,如下图所示。

## 二、重要功能介绍
### 1.相机运动器
对玩家的相机支持了三种运动器接口,可用于单独控制玩家相机进行更平滑的轨迹运动,详情请参考[相机运动器接口](../接口/玩家/摄像机.md#addcameratrackmotion)。
1. 轨迹运动器:用于驱动相机从一点到另一点的直线运动。

2. 速度运动器:用于驱动相机根据初速度和加速度进行匀速/变速运动。

3. 环绕运动器:用于驱动相机环绕指定坐标或指定实体运动。

> 环绕运动器将在后续版本支持支持固定环绕半径,请耐心等待。
### 2.物品容器UI
1. 为原生的物品容器UI增加了前后多个图层,可以调用代码动态修改各图层显示的图片,详情查看新增[接口文档](../接口/物品.md#setitemlayer)
2. 开发者可在内容库→作品模板分页查看自定义物品和自定义熔炉两个SDK示例,同步更新了相应的物品容器UI相关的示例用法。

### 3.特征支持接口放置
特征支持使用接口动态放置,同时支持**网易版特征**和**原版特征**,详见[PlaceFeature](../接口/世界/地图.md#placefeature)接口,与placefeature指令一致,如下图所示:

### 4.按钮控件支持悬浮回调
支持使用接口为按钮开启**悬浮事件**并添加**悬浮回调函数**,详见[AddHoverEventParams](../接口/自定义UI/UI控件.md#addhovereventparams)接口。
## 三、重要调整和修复说明
### 1.游戏区块动态加载范围调整
1. 在2.5版本之前,游戏服务端的动态加载区块范围为客户端视野范围和模拟距离的最大值,从2.5版本开始将默认为模拟距离。
2. 未加载的区块对服务端而言是虚空,无法在该区域进行召唤生物、放置物品等操作。
3. 请开发者根据自身模组情况尽快调整和适配相关内容,可参考使用[CheckChunkState](../接口/世界/地图.md#checkchunkstate)接口验证是否加载,使用[DoTaskOnChunkAsync](../接口/世界/地图.md#dotaskonchunkasync)接口进行异步处理。
### 2.物品描述覆盖问题
修改物品信息字典的Customtips属性后会覆盖物品的Json组件netease:customtips的内容。
### 3.平滑字体字号变动说明
修复了**平滑字体**指向错误字库的问题,会导致当前平滑字体的字号比之前的版本略大,请开发者根据自身模组的字体和UI适配情况进行检查和适配。

## 四、API改动
### 新增
1. 新增[Enable](../接口/实体/官方聊天扩展.md#enable)(服务端), 启用官方聊天扩展功能
2. 新增[Disable](../接口/实体/官方聊天扩展.md#disable)(服务端), 关闭官方聊天扩展功能
3. 新增[DoTaskOnChunkAsync](../接口/世界/地图.md#dotaskonchunkasync)(服务端), 异步加载指定范围区块,加载完成后调用输入的回调函数。
4. 新增[PlaceFeature](../接口/世界/地图.md#placefeature)(服务端), 放置特征
5. 新增[SetItemLayer](../接口/物品.md#setitemlayer)(服务端), 设置物品的叠加贴图
6. 新增[RemoveItemLayer](../接口/物品.md#removeitemlayer)(服务端), 移除物品的叠加贴图
7. 新增[GetItemLayer](../接口/物品.md#getitemlayer)(服务端), 获取物品的叠加贴图
8. 新增[GetMousePosition](../接口/控制.md#getmouseposition)(客户端), 获得鼠标位置接口
9. 新增[AddCameraTrackMotion](../接口/玩家/摄像机.md#addcameratrackmotion)(客户端), 给相机添加轨迹运动器
10. 新增[AddCameraVelocityMotion](../接口/玩家/摄像机.md#addcameravelocitymotion)(客户端), 给相机添加速度运动器
11. 新增[AddCameraAroundPointMotion](../接口/玩家/摄像机.md#addcameraaroundpointmotion)(客户端), 给相机添加对点环绕运动器
12. 新增[AddCameraAroundEntityMotion](../接口/玩家/摄像机.md#addcameraaroundentitymotion)(客户端), 给相机添加对实体环绕运动器
13. 新增[GetCameraMotions](../接口/玩家/摄像机.md#getcameramotions)(客户端), 获取相机上所有运动器
14. 新增[RemoveCameraMotion](../接口/玩家/摄像机.md#removecameramotion)(客户端), 移除相机上的某个运动器
15. 新增[StartCameraMotion](../接口/玩家/摄像机.md#startcameramotion)(客户端), 启动相机上的某个运动器
16. 新增[StopCameraMotion](../接口/玩家/摄像机.md#stopcameramotion)(客户端), 停止相机上的某个运动器
17. 新增[GetPlayerGameType](../接口/玩家/游戏模式.md#getplayergametype)(客户端), 客户端获取玩家游戏模式
18. 新增[GetPlayerExp](../接口/玩家/属性.md#getplayerexp)(客户端), 获取玩家当前等级下的经验值
19. 新增[GetPlayerCurLevelExp](../接口/玩家/属性.md#getplayercurlevelexp)(客户端), 获取玩家当前等级需要的经验值
20. 新增[GetPlayerTotalExp](../接口/玩家/属性.md#getplayertotalexp)(客户端), 获取玩家的总经验值
21. 新增[GetCurrentAirSupply](../接口/实体/属性.md#getcurrentairsupply)(客户端), 玩家当前氧气储备值
22. 新增[GetMaxAirSupply](../接口/实体/属性.md#getmaxairsupply)(客户端), 玩家最大氧气储备值
23. 新增[GetRiderId](../接口/实体/属性.md#getriderid)(客户端), 获取玩家坐骑entityid
24. 新增[GetArmorValue](../接口/玩家/属性.md#getarmorvalue)(客户端), 获取玩家护甲值
25. 新增[ResetSkin](../接口/玩家/渲染.md#resetskin)(客户端), 还原默认皮肤
26. 新增[AddHoverEventParams](../接口/自定义UI/UI控件.md#addhovereventparams)(客户端), 按钮悬浮回调
27. 新增[SetButtonHoverInCallback](../接口/自定义UI/UI控件.md#setbuttonhoverincallback)(客户端), 按钮悬浮事件
28. 新增[SetButtonHoverOutCallback](../接口/自定义UI/UI控件.md#setbuttonhoveroutcallback)(客户端), 按钮悬浮事件
29. 新增[MouseWheelClientEvent](../事件/控制.md#mousewheelclientevent)(客户端), 鼠标滚轮滚动事件
30. 新增[OnMouseMiddleDownClientEvent](../事件/控制.md#onmousemiddledownclientevent)(客户端), 鼠标中键点击事件
31. 新增[ScreenSizeChangedClientEvent](../事件/UI.md#screensizechangedclientevent)(客户端), 屏幕大小改变事件
32. 新增[CameraMotionStartClientEvent](../事件/玩家.md#cameramotionstartclientevent)(客户端), 相机运动器开始事件
33. 新增[CameraMotionStopClientEvent](../事件/玩家.md#cameramotionstopclientevent)(客户端), 相机运动器停止事件
### 调整
1. 调整[PushScreen](../接口/自定义UI/通用.md#pushscreen)(客户端), 修改了鼠标的生成方式
2. 调整[SetMergeSpawnItemRadius](../接口/世界/地图.md#setmergespawnitemradius)(服务端), 支持浮点数
3. 调整[GetEditText](../接口/自定义UI/UI控件.md#getedittext)(客户端), 添加了敏感词过滤
4. 调整[DamageEvent](../事件/实体.md#damageevent)(服务端), 新增浮点伤害值
5. 调整[ActuallyHurtServerEvent](../事件/实体.md#actuallyhurtserverevent)(服务端), 新增浮点伤害值
6. 调整[ActorHurtServerEvent](../事件/实体.md#actorhurtserverevent)(服务端), 新增浮点伤害值