Unity Qframework Design logo

Unity Qframework Design

CommunityPopular
Besty0728
unity-qframework-design

Source-anchored design rules for QFramework v1.0.257 covering the four-layer architecture (Controller/System/Model/Utility), Command/Query/Event/BindableProperty core tools, and the CoreKit-family toolkits (UIKit/ResKit/ActionKit/PackageKit), distilled from QFramework.cs source and the official Doc.md tutorial with every rule citing a file/line anchor to guard against stale-memory hallucination.

Overview

PublisherBesty0728
RepositoryUnity-Skills
Skill nameunity-qframework-design
Stars
1.8K
Forks
164
Bundled files
7
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 7 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Besty0728 on GitHub. Read the source before you install it.

Installation

Install the Unity Qframework Design AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.

Use it in TypingMind

Enable Unity Qframework Design in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Unity Qframework Design on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Unity Qframework Design is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Before calling any skill in this module: if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via GET /skills/recommend?includeSchema=true) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.

Triggers

  • Writing or reviewing QFramework architecture code (Controller/System/Model/Utility)
  • Registering Systems/Models/Utilities, sending Commands/Queries/Events
  • Binding BindableProperty / BindableList / BindableDictionary in views
  • Choosing between the core IOCContainer and the Toolkits IOCKit, or between architecture events and EasyEvent
  • 编写或审查 QFramework 架构代码、四层职责划分、Command/Query/Event/BindableProperty 使用、核心容器与 Toolkits 容器选型

QFramework - Design Rules(v1.0.257)

Advisory 模块。全部规则提炼自 QFramework 官方源码与教程:

  • QFramework.cs(核心架构单文件源码,仓库根目录 QFramework.cs,内部注释标注 Latest Update: 2026.8.12 return module instance after register
  • Doc.md(官方教程全文,8820 行,仓库根目录 Doc.md
  • QFramework API.md(核心层签名索引;Toolkits 无覆盖,且截至本次抓取仍未同步 2026-08-12 的返回值变更)

每条规则都标注具体文件/行号(行号对应上游 liangxiegame/QFramework 主仓库 v1.0.257 快照;Toolkits 源码位于 QFramework.Unity2018+/Assets/QFramework/),遇到分歧以 QFramework.cs 源码为准,Doc.md/API.md 仅供交叉印证——教程本身可能滞后于源码。正文中文,API 名/代码保持英文。

Mode: Documentation only — no REST skills to gate; load freely under any operating mode (Approval / Auto / Bypass).

When to Load This Module

生成或审查以下任意一项之前先加载:

  • Architecture<T> 子类的 Init() 启动逻辑、RegisterSystem/RegisterModel/RegisterUtility 调用
  • IController / ISystem / IModel / IUtility 接口实现,或给这些接口增删 ICan* 能力接口
  • SendCommand / SendQuery / SendEvent / RegisterEvent 调用,ICommand / ICommand<TResult> / IQuery<TResult> 实现
  • BindableProperty<T> / BindableList<T> / BindableDictionary<TKey,TValue> 的声明、Register/RegisterWithInitValue/Comparer 使用
  • TypeEventSystem / EasyEvent 系列的注册与手动注销
  • 覆写 Architecture<T>.ExecuteCommand 做 Command 拦截(日志/中间件/撤销/自动化测试)
  • 判断某个数据该放 Model 还是留在 MonoBehaviour 局部
  • 在 QFramework.cs 自带的 IOCContainer 与 Toolkits CoreKit.IOCKitIQFrameworkContainer + [Inject])之间选型
  • Toolkits 安装形态确认(unitypackage 导入 Assets/,无 UPM)、版本号核对

Critical Rule Summary

#RuleSource anchor
1RegisterSystem<T>/RegisterModel<T>/RegisterUtility<T> 返回注册的实例本身(不再是 void),自 2026-08-12 起生效;IArchitecture 接口已声明 TSystem/TModel/TUtility 返回类型。官方 Doc.md 全部教程示例(含"用接口设计模块"一节 2408-2422 行)仍是丢弃返回值的旧写法,是过时示例,不代表当前推荐用法QFramework.cs:43,45,47,132-163
2四层接口:IController(226) ISystem(235) IModel(264) IUtility(291);ICommand(299) / ICommand<TResult>(305);IQuery<TResult> 只有泛型形式,没有非泛型 IQuery(342)QFramework.cs:226,235,264,291,299,305,342
3分层通用规则:IController 改 System/Model 状态必须走 Command;System/Model 通知上层必须用 Event 或 BindableProperty;上层可直接获取下层,下层不能获取上层;Command/Query 不能有状态。规则是"理想状态",作者原话允许按需放宽(如给 IController 追加 ICanSendEventDoc.md:2682-2820(放宽原话 2791,改接口示例 2793-2805)
4判断数据是否该放 Model:时间上共享(跨启动持久化)、物理上共享(跨界面/跨场景常驻内存)、配置表三类才放 Model;反例——敌人生命不放 Model,交给敌人脚本自己管理Doc.md:4051-4077(反例 4064-4066)
5BindableProperty<T>.Value setter 靠 Comparer 判等后再触发事件;ComparerAutoRegister[RuntimeInitializeOnLoadMethod])已为 int/float/string/Vector2-4/Color/Quaternion 等类型把默认 Equals 换成 ==Register 只订阅后续变化,RegisterWithInitValue 会先用当前值回调一次QFramework.cs:711,762-789,740-749
6BindableList<T> / BindableDictionary<TKey,TValue> 是 2024-09-18/19 才加的 Toolkits 附加工具(_CoreKit/BindableKit/,不在 QFramework.cs 单文件里),边缘工具而非核心概念;作者原话承认不知道 BindableDictionary 能用在什么场景——按需评估,不要当成默认选型。BindableList 索引器赋值只触发 OnReplaceMove 只触发 OnMove(都不会连带 OnAdd/OnRemoveDoc.md:8438-8592,8593-8712(原话 8595);BindableList.cs:38-115,BindableDictionary.cs:17-44
7事件工具三选一:TypeEventSystem(跨对象、支持接口继承事件、适合通用系统)/EasyEvent(脱离架构、更轻量、无字段名)/架构内建 SendEvent(基于 TypeEventSystem 实例)。手动注销必须用具名方法(匿名委托无法 -=);UnRegisterWhenCurrentSceneUnloaded() 无需传 GameObject,换场景即自动清空;事件类型建议用 struct 减少 GCDoc.md:3305-3461(小结 3440-3461),QFramework.cs:610-611,624-641
8Command 拦截:覆写 Architecture<T>.ExecuteCommand(ICommand)(前后各插一段逻辑)可做日志/中间件/撤销/自动化测试,官方源码默认实现只是直接 command.Execute()Doc.md:3137-3186QFramework.cs:183-187
9两套容器不要混淆:核心 IOCContainerDictionary<Type,object>,仅单例注册/获取,Architecture<T> 内部私有持有一份,无反射);Toolkits CoreKit.IOCKitIQFrameworkContainer/QFrameworkContainer)是完全独立的反射式依赖注入实现——支持类型映射、命名注册、关系映射、按 [Inject] 特性做字段/属性注入、按参数最多的公开构造函数自动解析依赖——不在 QFramework.cs 源文件里核心:QFramework.cs:130,647-684;Toolkits:IOCKit.cs:19-31,33-136,141,239-263,315-358_CoreKit/IOCKit/IOCKit.cs
10Toolkits 安装形态:.unitypackage 导入 Assets/没有 UPM 包;已装版本看 PackageKit 编辑器面板或安装目录下的 PackageVersion.json,GitHub/Gitee Release tag 会滞后于 PackageKit 实时源Doc.md:4178-4182PackageData.cs:286PackageVersion.json 写入路径,Toolkits 源码)

Sub-doc Routing

Sub-docWhen to read
LAYERS.md四层接口与职责、通用规则与放宽方式、共享数据判据、Command 拦截、Architecture<T> 生命周期(InitArchitecture/Deinit
BINDABLE_QUERY.mdBindableProperty(含 Comparer/RegisterWithInitValue)、BindableList/BindableDictionaryCommand vs Query 的 CQRS 分工
EVENT_TOOLS.mdTypeEventSystemEasyEvent 家族、IOCContainer(核心)vs IOCKit(Toolkits)、注销模式(UnRegisterWhenGameObjectDestroyed/UnRegisterWhenCurrentSceneUnloaded/IUnRegisterList
CODEGEN_UIKIT.mdCodeGenKit 两阶段代码生成(Designer 覆盖规则、命名空间迁移、ScriptsFolder 不 fallback、ViewController 嵌套、OtherBinds)与 UIKit 界面工作流(面板开关/生命周期/Apply 选错 UIRoot 的硬坑/UIKitSettingData 配置)
RESKIT.mdResKit 资源方案:AssetBundle 标记粒度、场景独占 AB、模拟/非模拟模式、ResLoader 引用计数语义、构建输出目录、AB 跨包 Prefab 依赖的 Unity 官方 bug
ACTIONKIT.mdActionKit 链式动作序列(Delay/Sequence/Parallel/Repeat/Condition、全局生命周期、TimeScale 与场景切换)、SingletonKit 六种单例选型、AudioKit 三通道与纯编辑态访问 Settings 会 NPE 的陷阱、ScreenTransition
DATA_KITS.mdFSMKit(链式 vs 类模式)、TableKit(联合查询与内部基础设施定位)、PoolKit(两种池语义差异)、GridKit/DynaGrid

Routing to Other Modules

  • REST 端点/操作层面的 QFramework 技能调用 → 加载并行编写的 qframework REST 模块(本模块只覆盖设计规则,不覆盖 REST 参数)
  • 与 UniTask/协程的桥接(ActionKit 序列 vs async)→ unitask-design / async
  • 整体架构分层评审、状态管理选型 → architecture / patterns
  • 事件/BindableProperty 高频触发场景的性能评审 → performance
  • ResKit 底层如走 Addressables 的资源生命周期 → addressables-design
  • Asmdef 布局(QFramework.cs 与 Toolkits 分别装配)→ asmdef

Version Scope

锚定 v1.0.257(QFramework.cs 内部注释最后更新 2026-08-12,本模块 2026-08 抓取)。

  • QFramework.cs 是单文件核心架构,版本号不随 Toolkits 独立发布,跟随 GitHub/Gitee 主仓库 tag。
  • Toolkits(CoreKit/UIKit/ResKit/ActionKit/AudioKit/PackageKit…)版本以 PackageKit 面板/PackageVersion.json 为准,可能领先于本模块引用的 unitypackage 快照。
  • 关键分水岭:RegisterSystem/RegisterModel/RegisterUtility 返回值语义在 2026-08-12 从 void 改为返回实例——凡是引用早于此版本的第三方教程或历史代码,示例可能与当前源码签名不符,以 QFramework.cs 为准。

当有疑问时,去读源码引用的行号,而不是凭记忆或凭教程旧例。

Known Gaps

  • LocaleKit 官方教程零覆盖:Doc.md 全篇只在工具清单里一句话提到 LocaleKit("本地化&多语言工具集"),没有任何用法示例或 API 说明。从源码看它当前主要是编辑器内 CN/EN 显示开关(LocaleKitEditor.IsCNEditorPrefsEDITOR_CN)加一份语言定义 ScriptableObject(LanguageDefineConfig),并不是面向游戏运行时文本的完整多语言方案,与其自我描述有落差。需要运行时本地化时不要假设 LocaleKit 能直接胜任,先读源码确认。
  • FluentAPI 方法清单未逐条收录_CoreKit/FluentAPI/ 覆盖 GameObject/Transform/Camera/Color/Graphic/Vector/RectTransform 及 C# 基础类型的大量链式扩展,数量过大未在本模块展开;用到时按目标类型去对应源文件查。

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Unity Qframework Design AI skill do?

Source-anchored design rules for QFramework v1.0.257 covering the four-layer architecture (Controller/System/Model/Utility), Command/Query/Event/BindableProperty core tools, and the CoreKit-family toolkits (UIKit/ResKit/ActionKit/PackageKit), distilled from QFramework.cs source and the official Doc.md tutorial with every rule citing a file/line anchor to guard against stale-memory hallucination.

Why use Unity Qframework Design on TypingMind?

Because you install it once and use it with any model. Unity Qframework Design is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Unity Qframework Design in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/qframework-design. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Unity Qframework Design?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Unity Qframework Design?

As many as you like. As long as a model supports skills, you can use Unity Qframework Design with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Unity Qframework Design AI skill free?

Yes. It is published on GitHub by Besty0728 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇