这里是 Bingyan DevKit 包的更新日志!
- 将原
.unitypackage
包完全改为 Unity Package - 移植了所有原有特性
- 方法回调选择器 -
Callback
- 音频触发器 -
AudioCallback
- 场景选择器 -
SceneName
- 字符串ID -
StrID
- 自定义属性标签 -
Title
- Tween -
Tween
- 可拖拽UI -
DraggableUI
- 自定义处理器 -
Processer
- 方法回调选择器 -
- 将部分仅内部使用的类型访问性改为
internal
- 将编辑器拓展相关代码移动至
Bingyan.Editor
命名空间下
- 将创建
StrID
时的“确定”按钮移动到左侧,以符合操作习惯 - 修改了
StrID
无法找到原先设定的值时,反馈的警告信息
- 修复了无法在 Project Settings 中删除字符串ID的问题
- 将原
GameData
框架的功能并入DevKit
中 - 增加了对
Vector2
,Vector3
,Quaternion
数据类型进行 JSON 序列化、反序列化的支持 - 增加了对 JSON 序列化、反序列化过程进行自定义的接口
- 将
Data
类重命名为Archive
类 - 将
LitJson
库移动至Runtime
文件夹
- 修复了无法正常读取存档中的
float
值的 bug
- 对
Archive
类的单元测试
- 现在
StringIDDrawer
的绘制不再需要FieldInfo
了
- 修复了
StrID
的prefix
参数无效的 bug
- 修复了部分情况下,
Archive
解析器匹配报错的bug
- 为说明文件
README.md
CHANGELOG.md
等添加.meta
文件以使引擎识别
- 修复了
Processable
无法重写Process
和PhysicsProcess
方法的问题
DraggableUI.ResetDragObj()
方法,让拖拽物还原到原来的位置与父子关系
- 将
DraggableUI
的 Unity 消息改为virtual
, 便于拓展 - 现在
DraggableUI
在拖拽时,会将拖拽物放置于Canvas
的直接子物体处,防止遮罩等影响
- 修复了
Tween
可能被多次回收入对象池的 bug
CustomConfigEditor
: 用于创建组件化ScriptableObject
型配置文件的编辑器支持(初步)
- 修复了
Tween
在切换场景时报错的 bug
CompositeConfigEditor
: 将ScriptableObject
拆分为组件化配置的编辑器拓展抽象CompositeComponentAttribute
: 用于注册适用于CompositeConfigEditor
的组件的Attribute
CustomConfigEditor
更名为CompositeConfigEditor
- 修复了打包时未将
DevKit.Editor
集合排除引发的报错
- 调优了
CustomConfigEditor
在组件被删除时的表现
RelayProcesser<T>
中继处理器,用于实现多层处理结构DefaultRelayProcesser
泛用型中继处理器
Processer<T>
现在成为对RelayProcesser<T>
的 Mono 封装
RelayProcesserMono<T>
和DefaultRelayProcesserMono
: 可添加为组件的中继处理器IProcesser<T>
: 处理器抽象接口
Processer<T>
更名为ProcesserMono<T>
DefaultProcesser
更名为DefaultProcesserMono
StrID
现在支持一种新前缀$scene
- 使用该前缀的 ID 会自动以当前场景的名称作为前缀
- 要筛选,只需要在其他
StrID
传入prefix:"你的场景名称"
- 非常适合【场景限定】ID 使用
- 修复了
CompositeConfigEditor
内无法编辑配置的 bug
- 添加了状态机
FSM<T>
和对应的状态FSMState
FSM<T>
将会自动实例化T
指定的状态对象
- 现在
Tween
改用Stack
作为对象池,而非 Unity 内置的ObjectPool<Tween>
- 添加了
Tween
的内存安全检查,可以阻止用户代码访问已被回收的Tween
- 添加了
Tween.Verbose
,用于打印额外的 Debug 信息
FSM
现在不再是泛型模式了FSM
现在需要重写FSM.DefineStates()
与FSM.GetDefaultState()
来实现定义所有状态和初始状态
- 现在
TitleAttribute
对于结构体和MultilineAttribute
增加了支持
LinedPropertyDrawer
现在使用EditorGUIUtility.standardVerticalSpacing
作为默认纵向间距
- 现在
Processer
和RelayProcesser
们都使用for
进行循环,以避免在枚举期间调用Add()
Remove()
出错
DataStoreSet
: 使用HashSet
实现的数据存储模型IEnumerableExtension
: 针对集合的拓展函数,包含ForEach
和ForEachIndexed
Tween
新增LimitDeltaTime()
和Unscaled()
选项LimitDeltaTime()
可以在Time.deltaTime
过大时进行限制,防止因为帧率原因,Tween.Linear()
过快完成Unscaled()
允许Tween
在Time.timeScale == 0
的情况下继续运行
- 修复了切换场景时,
Tween
没有正确终止执行的 bug - 修复了在
IProcessable.Process(float)
或IProcessable.PhysicsProcess(float)
时使用Add()
或Remove()
导致执行顺序出错的问题
- 音频工具
AudioUtils
,可以实现分贝与绝对音量之间转换 - UI 网格布局辅助工具
GridAdapter
, 可以规定行/列数,并让网格内元素尽量占据空间 - 向量工具
VectorExtensions
, 可以更方便地修改向量的某一个分量
Flow
链式调用流,可以链式地指定并调用一系列(可能带有延时的)操作VectorExtensions
现在增加对Vector2
和Vector3
的各个元素进行遍历的工具方法GridAdapter
现在支持 【拉伸元素】与【拉伸空隙】两种模式
- 优化了
TitleAttribute
在结构体等嵌套元素上的表现 - 优化了
StrIDAttribute
在设置界面的 ID 排序方式 - 补充了一部分文档注释
ColorUtils
,VectorExtensions
等一系列工具,实现了一些基础功能FloatRange
等常用数据结构
- 修正了
Flow
的命名空间 - 修改了
Processer
的访问修饰,使其可以被重写 - 修改了状态机【是否使用 Unity Update】的描述与访问修饰
- 优化
Tween.Lerp
的更新逻辑