这里是 Motivation 包的更新日志!
- 全部主体内容
- 状态控制器
Motivator
- 横版2D模块家族
- 简单输入模块
SimpleInputModule
- 状态控制器
- 将
H2DBoxcastPhysicsModule
更名为H2DCirclecastPhysicsModule
以与实际行为匹配
- 修复了
Motivator
的capableModules
列表为null
的bug - 修复了从未打开过设置界面时,状态码编辑界面报错的bug
- 现在
H2DPhysicsModuleBase
将不会自动更改RigidBody2D
的模式为Dynamic
了 - 现在
Motivator.Velocity
不再与RigidBody2D
绑定
- 将“参数”小标题移动至“键位”下方, 使继承
H2DMoveModule
或H2DJumpModule
时添加的参数可以放在正确的位置 - 将 H2D 系列模块的
private
成员改为protected
- 取消了
MotivatorState
的partial
修饰 - 允许
H2DJumpModule
的子类重写对【地面】的判定,以实现在其他情况下重置跳跃次数
- 增加模块的泛型获取方法
- 增加模块的泛型移除方法
Motivator
现在不再强行要求物理模块被设置- 将
Motivator
的大部分private
成员改为protected
- 增加了
Motivator.Message(uint)
与Module.OnMessage(uint)
方法,作为跨模块信息传递的渠道之一
- 提供
DelayedTrigger.Time
和DelayedTrigger.Percent
用于获取其内部计时状态 - 现在
Motivator
在更新激活的模块时,将不会调用未启用模块的OnEnter()
和OnExit()
方法
- 增加了
Motivator
在编辑器面板的状态显示 - 将层级选择器改用为原生的
LayerMask
- 修复了在
Module.OnEnter()
和Module.OnExit()
内更改Motivator
的状态码导致堆栈溢出的bug
- 增加了
Motivator
在编辑器面板的状态显示 - 将层级选择器改用为原生的
LayerMask
- 修复了在
Module.OnEnter()
和Module.OnExit()
内更改Motivator
的状态码导致堆栈溢出的bug
- 新的输入注册系统
- 由原先从
ControllerModule.OnAdd(Motivator)
主动注册改为重写ControllerModule.GetRequiredKeys()
被动提供 InputModule
现在拥有RequiredKeys
属性,无需从Host
读取InputModule
可以重写OnKeyAdd
和OnKeyRemove
以监听需求按键的变化
- 由原先从
- 将
Motivator.RegisterKeys(KeyCode[])
和Motivator.RequiredKeys
标记为[Obsolete]
KeyMap
按键映射机制KeyMap
按键映射抽象类,指定按键应当如何在 【用户输入】和【Motivator
需求】 之间进行映射DictionaryKeyMap
: 使用一个简单的字典来实现KeyMap
的功能需求,需要继承并调用ApplyKeyMap(IDictionary<KeyCode,KeyCode>)
方法StaticKeyMap
: 静态的KeyMap
,仅保存在编辑器内,用于团队内不同操作习惯的成员进行测试
KeyMapInputModule
,自动映射不同的按键并提供给Motivator
使用
H2DJumpModule
增加了一个回调,在玩家跳跃并持续按住跳跃键时调用,可用于控制跳跃高度
SimpleInputModule
改为继承自KeyMapInputModule
而非InputModule
- 较为完备的
KeyMap
按键映射体系KeyMap
及其子类: 按键映射关系的抽象类型EditorKeyMap
: 使用EditorPrefs
存储的按键映射类,适合团队合作时不同成员采用不同的键位对游戏进行测试KeyPair
和KeyPairs
: 用于定义按键组合的工具类
KeyMapInputModule
: 支持自动应用按键映射的输入模块
- 适用于
KeyPairs
以及EditorKeyMap
的编辑器UI改进
- 将
MotivationStateMaskEditor
重命名为MotivationStateDrawer
- 现在
Motivator
提供了Init()
方法,在非自主控制的情况下需要手动调用
PCInputModule
: 使用新输入系统实现的 PC 端输入模块KeyUtils
: 按键工具类,负责将UnityEngine.KeyCode
与UnityEngine.InputSystem.Key
相互转化
- 修改
SimpleInputModule
的鼠标逻辑
- 修复了
ControllerModule
被禁用时,Motivator.capableModules
没有被正确更新的 bug
- 现在
Motivator
的子类也会在编辑器菜单显示运行时状态信息了
Module.OnActive
和Module.OnDeactive
, 提供在模块激活/禁用时的回调
- 修改部分 API 以支持 DevKit V1.3.2
- 现在
PCInputModule
每次都将访问最新的输入设备实例,而非在初始化时保存引用