Releases: yuumixcode/AesirFramework
Releases · yuumixcode/AesirFramework
Release list
v0.16.2
[0.16.2] - 2026-09-06
[architecture] Aesir Architecture
Changed
LICENSE.md与Third Party Notices.md移至包根 — 对齐 UPM 包根约定(Package Manager 识别包根的 Third Party Notices),包 README 的 LICENSE 徽章链接随之生效;版权行统一为 Runestone Yuumix
[modules] Aesir Modules
Changed
LICENSE.md与Third Party Notices.md移至包根 — 同 Architecture;Documentation~/镜像不再存放两文件的副本
AesirFramework v0.16.1
[0.16.1] - 2026-09-06
[architecture] Aesir Architecture
Changed
- Third Party Notices 收录 ObservableCollections(Cysharp,MIT) — 设计参考条目:可观察集合高级能力(Move / Sort / 同步视图 / R3 集成)的推荐替代库;注明仅设计参考、未包含源码
- 根 README(中英)推荐链接新增 ObservableCollections
[modules] Aesir Modules
Changed
- 新增
Documentation/Third Party Notices.md— 收录 Eflatun.SceneReference(MIT)设计参考条目(Scene 模块SceneAssetWrapper吸收其功能设计);注明仅设计参考、未包含源码 - README(中英)Scene 模块
SceneAssetWrapper条目补注功能设计参考来源 - 根 README(中英)推荐链接新增 Eflatun.SceneReference
AesirFramework v0.16.0
[0.16.0] - 2026-09-06
[architecture] Aesir Architecture
Changed
- 版本号与 Aesir Modules 同步更新至
0.16.0,本包本版本无功能性变更
[modules] Aesir Modules
Added
SceneAssetWrapper功能增强(吸收 Eflatun.SceneReference) — GUID 锚点自愈(sceneGuid序列化字段 +EditorSyncFromAsset)、State/UnsafeReason状态机校验、TryGet安全读取家族、FromScenePath/FromAsset(编辑器)工厂方法、Address序列化缓存与AddressablesSupportEnabled- Addressables 条件架构 — 核心 asmdef
versionDefines定义AESIR_MODULES_ADDRESSABLES;独立胶水程序集Runestone.AesirModules.Editor.Addressables(未安装 Addressables 时整体不编译,零报错),经SceneAssetWrapperAddressablesBridge静态委托桥注册地址查询与加入默认组能力 - Scene 模块测试程序集
Runestone.AesirModules.Scene.Tests— 27 个 EditMode 用例,自适应装 / 未装 Addressables 环境
Changed(破坏性变更)
- 删除
AddScene/UnloadAddedScene(含*WithSceneAssetWrapper变体)— 统一为LoadSceneAdditive纯叠加追踪:不再自动卸载上个场景、不再抢占激活场景 ReloadScene同步改异步 — 带onCompleted/onFailed回调- 加载失败新增
onFailed回调 —LoadSceneSingle/LoadSceneAdditive/UnloadScene/ReloadScene全系支持 SceneAssetWrapper空引用语义收紧 —ScenePath/Guid/SceneName/BuildIndex/LoadedScene空引用由返回空值改为抛EmptySceneAssetWrapperException*WithSceneAssetWrapper6 个方法改为同名重载
Changed(包结构重组)
- 目录调整为标准 Unity 自定义包根结构 — 包根两级目录
Runtime/与Editor/,功能模块(UI / Scene / Events)以子目录存在于对应层级,模块间零依赖,删除模块 = 删除对应层的模块子目录;核心程序集锚点在层根(模块主代码自动汇入),Odin / Addressables 细分程序集锚点收拢至Common/下,模块专属代码经 4 个 asmref 汇入;程序集名称与公共 API 不变
AesirFramework v0.15.0
[0.15.0] - 2026-09-05
[architecture] Aesir Architecture
Added
- 可观察集合
ObservableHashSet<T>— 与 List / Dictionary 同构:组合HashSet<T>存储 +MiniEvent零分配事件;事件负载单值直传Action<T>(对齐 Dictionary 的 KeyValuePair 直传先例);只读接口IReadOnlyObservableHashSet<T>为不变型;新增 ObservableHashSetTests 14 个 - RuntimeInitializeLoadType 示例 — 编辑器窗口演示
RuntimeInitializeLoadType五个初始化时机的执行顺序与静态重置最佳实践;菜单归位Tools/Aesir/Architecture/Samples/RuntimeInitializeLoadType;ScriptableSingleton 落盘统一ScriptableSingleton/前缀
Changed
- 包内更新器大陆优化(jsDelivr 方案) — 版本检测三级兜底:jsDelivr 四域名拉取仓库内
.github/update-info.json(CI 发版后以[skip ci]提交回 main)→ GitHub Releases API →releases/latest302 重定向探测;unitypackage 下载仍走 GitHub Release 直链 - CI —
build_unitypackage.py的 files-manifest 升级为 update-info.json(顶层 version/tag);auto-release.yml发布后回写 main - ObservableDictionary.Remove(TKey) 优化 — 改用
Dictionary.Remove(key, out TValue)单次哈希查找取回旧值 - Odin 编辑器处理器命名空间对齐 —
Editor.OdinIntegration→Editor.OdinInspector(与 0.9.0 程序集/目录改名对齐) - 文档核查整理 — 两包中英 README 修正过时描述并补更新器/unitypackage 安装说明;AesirModules README 从 UIManager 旧架构重写为 UIModule 架构;Skill core-api.md
Interface→Instance;CONTRIBUTING 单例规范更正
Fixed
- PlaneWar 场景引用修复工具 — 原硬编码
Assets/Samples/.../0.12.0路径失效,改为FindAssets动态定位(兼容包内Samples/与 UPM 导入副本两种布局)
[modules] Aesir Modules
Changed
- 版本号与 Aesir Architecture 同步更新至
0.15.0,本包无功能性变更;中英 README 随全项目文档核查刷新至 UIModule 架构
[repo] 仓库级
Changed
- 根 README 重构(中英) — 新增 Aesir Modules 对等章节、文档地图、质量与 CI;安装方式扩为 4 种(新增 unitypackage 导入 + 包内更新器)
- CONTRIBUTING 修正 — OdinIntegration 旧命名更正;MonoBehaviour 单例规范更新为预放置优先 +
dontDestroyOnLoad序列化字段
Removed
- 仓库本地 AesirPackageInstaller(
Assets/Scripts/Editor/)— 硬编码版本常量需发版手动同步,本地复制安装路线已被 unitypackage Release 管线取代;版本/安装检查统一为包内更新器
AesirFramework v0.14.0
[0.14.0] - 2026-09-05
[architecture] Aesir Architecture
Changed
- AesirFramework 转型 — AesirInspector 已从本仓库移出,作为面向 Odin Inspector 开发者的学习工具包独立发布;本仓库更名定位为 AesirFramework,由 Aesir Architecture 与 Aesir Modules 组成
- Samples 双目录结构 — 包内同时提供
Samples/(仓库内直接可见可运行)与Samples~/(Git URL 安装后经 Package Manager 按需导入的源镜像);以Samples/为编写主位,内容同步至Samples~,两份内容保持一致 - 示例程序集构建剔除 — 全部示例程序集(asmdef)
includePlatforms收窄为Editor,示例脚本与资产(场景/预制体/贴图均无 Resources 目录、无构建场景引用)不会进入玩家构建包 - 示例命名空间统一 — 计数器六档与 PlaneWar 示例统一为
Runestone.AesirArchitecture.Samples.<示例名>(MvcQuick / MvcStandard / MvcStrict / MvpQuick / MvpStandard / MvpStrict / PlaneWarMono);MiniEvent与ObservableValue两示例因命名空间段与所演示的框架类型同名冲突(CS0118),保留Runestone.AesirArchitecture.Samples前缀命名空间
Added
- PlaneWar 实战示例(Mono 版) — 纵版射击飞机大战:自包含素材、得分 HUD、三型敌机与重开流程;已注册进 package.json samples,并纳入 Samples 双目录同步
[modules] Aesir Modules
Changed
- AesirFramework 转型同步 — 依赖声明
cn.runestone.aesir.architecture同步至0.14.0 - Samples 双目录结构 — 包内同时提供
Samples/与Samples~/;示例目录统一为Events/01_KeyPress(与 package.json samples 路径一致),示例代码随最新版本更新(EventEmitter → EventSender、OnKeyPressed → KeyPressedEvent)并以Samples/为编写主位同步至Samples~ - 示例程序集构建剔除 + 命名空间统一 — 示例程序集
includePlatforms收窄为Editor(不进入构建包);命名空间统一为Runestone.AesirModules.Samples.Events.KeyPress