Releases: hh-hang/three-player-controller
Releases · hh-hang/three-player-controller
Release list
v0.4.8
新增
- 自定义键位:新增
keyMap配置和setKeyMap()方法,可以自己设置每个操作用哪个键——换成别的键、一个操作绑多个键,或者把某个操作关掉(传null)。例如keyMap: { toggleFly: null }即可禁用飞行,keyMap: { forward: "KeyQ }把前进改成按 Q。 - 加减速参数:
PlayerModelOptions新增acceleration/deceleration(默认30),控制 XZ 方向的加速 / 减速响应,。 - 弹簧相机:
PlayerControllerOptions新增springCameraTime(默认0.15),配合enableSpringCamera调节跟随平滑度。
移除
- 移除
flyEnabled:PlayerModelOptions.flyEnabled已删除;如需禁用飞行,改用keyMap: { toggleFly: null }。
优化
- 速度驱动移动:位移由「按键直接驱动」改为「按键计算速度驱动」。
- 飞行前进方向:飞行时前进方向改为与相机朝向一致。
修复
- 修复速度被二次叠加导致重力变为 2× 的问题 (#6)。
v0.4.7
v0.4.6
新增
- 三段跳跃动画:
jumpAnim支持传入[起跳, 循环, 落地]三元素数组,落地后自动衔接移动动画 - 飞行悬停方向动画:新增 6 个方向的飞行悬停动画字段(
flyHoverForwardAnim/flyHoverBackAnim/flyHoverLeftAnim/flyHoverRightAnim/flyHoverUpAnim/flyHoverDownAnim),不配置时自动使用 flyIdleAnim - 第三人称鼠标模式 4 / 5:
thirdMouseMode新增两种模式,人物朝向实时跟随相机水平方向,适合 ARPG / TPS 风格控制 - 新增
getActiveDynamicCollider()接口,返回当前玩家站立的动态碰撞体 - 新增
getCurrentLocomotionSet()接口,返回当前移动动作组名
变更
- 去除掉落自动重置逻辑,位置超出边界后的处理改由用户自行调用
reset()自行控制
示例
- 新增FPS Game 示例
- gltf示例新增加ue小白人模型
v0.4.5
v0.4.4
配置变更
-
实例化方式变更:
playerController现在是类,需要使用new。// 之前 const player = playerController(); // 现在 const player = new playerController();
-
PlayerControllerOptions碰撞体字段变更:移除colliderMeshUrl,改用staticCollider/dynamicCollider。// 之前 await player.init({ colliderMeshUrl: "./map.glb", ... }); // 现在 await player.init({ staticCollider: mapMesh, ... });
新API
动态碰撞体
| 方法 | 说明 |
|---|---|
addDynamicCollider(source) |
注册动态碰撞体(如可移动平台、电梯)。 |
removeDynamicCollider(source) |
移除已注册的动态碰撞体。 |
clearDynamicColliders() |
移除所有动态碰撞体。 |
init 时也可通过 dynamicCollider 字段批量注册:
await player.init({
staticCollider: groundMesh,
dynamicCollider: [platformA, platformB],
...
});碰撞体重建
| 方法 | 说明 |
|---|---|
buildStaticCollider(sources?) |
运行时重建静态碰撞体;不传则遍历整个场景。 |
示例
- glTF Scene示例添加动态碰撞体(飞行云朵)
v0.4.2
v0.4.2
新增
- 新增自定义动画扩展能力,支持
registerAnimation、playAnimation、registerLocomotionSet、switchLocomotionSet。 - 新增更多运行时状态与查询接口,包括
getVelocity()、getIsFirstPerson()、getIsFlying()、getIsOnGround()、getControllerMode()、getPlayerModel()、getPlayerCapsule()、getCollider()、getCurrentPlayerAnimationName()、getCenterScreenRaycastHit()。 - 新增事件回调接口,包括
onBeforeViewChange、onViewChange、onGroundChange、onVehicleEnter、onVehicleExit、onTowardChange。 - 新增运行时控制能力,支持
setPlayerScale()动态缩放角色。 - 新增第一人称初始化与相机偏移配置,支持
isFirstPerson和firstPersonCameraOffset,方便更细致地控制第一人称体验。
修改
- 初始化配置项由
playerModel调整为playerModelConfig,与当前控制器实现保持一致。 - 角色头部节点字段由
headObjName调整为headBoneName。
示例
- 新增蜡笔小新(ShinChan)场景demo