AesirGetStartedService¶
- 种类:
static class - 命名空间:
Runestone.AesirArchitecture.Editor - 程序集:
Runestone.AesirArchitecture.Editor
继承链: System.Object → AesirGetStartedService
声明¶
Aesir Getting Started 服务 — 两版 Getting Started 窗口(IMGUI 兜底 / Odin 版)共用的无状态数据层: 扫描本机安装的 Aesir 包、解析示例清单与场景资产、按教学分组归置示例,并提供跳转动作。 包发现覆盖三种安装形态(同名包按此优先级取一):① 代码导入 InstallRootRelativePath(复制 / unitypackage,示例位于包内 Samples/);② 嵌入式包(Packages/ 目录下的包源码);③ UPM Git URL 安装 (包源在 PackageCacheRootPath)。后两种 UPM 形态的示例须导入到 Assets/Samples/<包显示名>/<版本>/<示例显示名>/,未导入的条目仍保留在清单中 (IsImported 为 false),由窗口的「导入 Sample」按钮经确认框 直接调用 Unity Package Manager 的 Sample API 导入(ConfirmAndImportUpmSample)。
示例清单(出现与否、路径、显示名、描述)以各包 package.json 的 samples 列表为唯一真源—— 新增示例只需更新 package.json,窗口自动跟进。而分组 / 顺序 / 档位徽章是代码侧展示启发式 (登记点即 GetSampleGroup / GetGroupOrder / GetSampleBadge 三个方法, 未命中启发式的示例落入默认分组)——需自定义分组归属时改这三个登记点,而非 package.json。
字段¶
常量字段
| 名称 | 描述 |
|---|---|
ImportConfirmCancelButton |
导入确认框的取消按钮文本。 |
ImportConfirmOkButton |
导入确认框的确认按钮文本。 |
ImportConfirmTitle |
导入确认框标题。 |
PackageCacheRootPath |
UPM Git URL 安装的包缓存根目录(项目相对路径,Unity 不导入)。 |
UpmSamplesRootPath |
UPM 示例导入的落地根目录(Package Manager → Samples → Import 后的位置)。 |
声明的字段
| 名称 | 描述 |
|---|---|
KnownPackages |
已公开发布的 Aesir 包唯一登记(顺序即概览卡片顺序)。更新器(补装目标 / 配套版本警告 / Release 资产定位)与 Getting Started 概览卡片共用本登记——新增公开包只改此处。 |
ImportConfirmCancelButton¶
导入确认框的取消按钮文本。
ImportConfirmOkButton¶
导入确认框的确认按钮文本。
ImportConfirmTitle¶
导入确认框标题。
PackageCacheRootPath¶
UPM Git URL 安装的包缓存根目录(项目相对路径,Unity 不导入)。
UpmSamplesRootPath¶
UPM 示例导入的落地根目录(Package Manager → Samples → Import 后的位置)。
KnownPackages¶
已公开发布的 Aesir 包唯一登记(顺序即概览卡片顺序)。更新器(补装目标 / 配套版本警告 / Release 资产定位)与 Getting Started 概览卡片共用本登记——新增公开包只改此处。
方法¶
声明的方法
| 名称 | 描述 |
|---|---|
ConfirmAndImportUpmSample(AesirGetStartedService.AesirSampleInfo, ref string) |
弹出 Unity 确认框(含示例介绍与导入后位置,可取消),确认后经 Unity Package Manager 的 Sample API 把示例导入到 Assets/Samples/<包显示名>/<版本>/<示例显示名>/; 取消返回 Cancelled,不动文件系统。 |
ScanPackages() |
扫描本机安装的 Aesir 包并解析示例。包按 Id 字母序返回 (cn.runestone.aesir.architecture → cn.runestone.aesir.modules,恰为教学顺序); 同名包按「Assets 副本 → 嵌入式 → PackageCache」优先级取一。 |
GroupSamples(AesirGetStartedService.AesirPackageInfo) |
按教学分组归置包内示例(组内保持 package.json 声明顺序;组间按 GetGroupOrder 排序,同序号保持首现顺序——插入排序保证稳定性)。 |
OpenSampleScene(AesirGetStartedService.AesirSampleInfo) |
打开示例场景:先保存当前打开的场景一次(无未保存修改时为空操作),再切换到示例场景。 当前场景从未保存过(无路径)时由 Unity Save 面板兜底,用户在面板中取消保存则中止切换 (避免丢失未保存的改动);无场景 / 未导入示例退化为 PingSample 定位。 |
PingSample(AesirGetStartedService.AesirSampleInfo) |
在 Project 窗口选中并 Ping 示例根目录文件夹(未导入时打开 Package Manager)。 |
BuildImportConfirmMessage(AesirGetStartedService.AesirSampleInfo) |
导入确认框正文:包名 + 示例名 + 示例介绍 + 导入后位置。 |
BuildNotImportedToastMessage(AesirGetStartedService.AesirSampleInfo) |
未导入示例整卡点击的 Toast 文本(引导经右侧按钮导入——导入动作在窗口内完成,不必去 Package Manager)。 |
BuildOpenSceneToastMessage(AesirGetStartedService.AesirSampleInfo) |
打开场景动作的 Toast 提示文本(告知示例场景已打开、切换前的场景已保存)。 |
BuildPingToastMessage(AesirGetStartedService.AesirSampleInfo) |
定位动作的 Toast 提示文本(告知用户已在 Project 窗口选中示例文件夹)。 |
GetSampleBadge(AesirGetStartedService.AesirSampleInfo) |
档位徽章文本(无档位返回 null):名称中的 快捷 / 标准 / 严格,或目录序号(01 基础、其余进阶)。 |
GetSampleGroup(AesirGetStartedService.AesirSampleInfo) |
示例分组标题(渐进式教学顺序:MVC → MVP → 功能演示 → 实战 → 各模块)。 |
GetUpmSampleImportPath(AesirGetStartedService.AesirSampleInfo) |
UPM / 嵌入式安装的示例导入后位置(项目相对路径,与 Package Manager 实际落地位置一致)。 |
OpenPackageManager() |
打开 Package Manager(UPM / 嵌入式安装的示例经其 Samples 标签页导入)。 |
继承的方法
| 名称 | 描述 | 声明类型 |
|---|---|---|
GetType() |
— | object |
Equals(object) |
— | object |
GetHashCode() |
— | object |
ToString() |
— | object |
MemberwiseClone() |
— | object |
Finalize() |
— | object |
ConfirmAndImportUpmSample(AesirGetStartedService.AesirSampleInfo, ref string)¶
弹出 Unity 确认框(含示例介绍与导入后位置,可取消),确认后经 Unity Package Manager 的 Sample API 把示例导入到 Assets/Samples/<包显示名>/<版本>/<示例显示名>/; 取消返回 Cancelled,不动文件系统。
public static AesirGetStartedService.AesirSampleImportResult ConfirmAndImportUpmSample(AesirGetStartedService.AesirSampleInfo sample, out ref string message)
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
message |
ref string |
— |
返回值
| 类型 | 说明 |
|---|---|
AesirGetStartedService.AesirSampleImportResult |
— |
ScanPackages()¶
扫描本机安装的 Aesir 包并解析示例。包按 Id 字母序返回 (cn.runestone.aesir.architecture → cn.runestone.aesir.modules,恰为教学顺序); 同名包按「Assets 副本 → 嵌入式 → PackageCache」优先级取一。
返回值
| 类型 | 说明 |
|---|---|
List<AesirGetStartedService.AesirPackageInfo> |
— |
GroupSamples(AesirGetStartedService.AesirPackageInfo)¶
按教学分组归置包内示例(组内保持 package.json 声明顺序;组间按 GetGroupOrder 排序,同序号保持首现顺序——插入排序保证稳定性)。
public static List<AesirGetStartedService.SampleGroup> GroupSamples(AesirGetStartedService.AesirPackageInfo pkg)
参数
| 名称 | 类型 | 说明 |
|---|---|---|
pkg |
AesirGetStartedService.AesirPackageInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
List<AesirGetStartedService.SampleGroup> |
— |
OpenSampleScene(AesirGetStartedService.AesirSampleInfo)¶
打开示例场景:先保存当前打开的场景一次(无未保存修改时为空操作),再切换到示例场景。 当前场景从未保存过(无路径)时由 Unity Save 面板兜底,用户在面板中取消保存则中止切换 (避免丢失未保存的改动);无场景 / 未导入示例退化为 PingSample 定位。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
bool |
是否已实际打开示例场景(保存被取消或示例不可打开时为 false,不产生切换)。 |
PingSample(AesirGetStartedService.AesirSampleInfo)¶
在 Project 窗口选中并 Ping 示例根目录文件夹(未导入时打开 Package Manager)。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
bool |
是否定位成功(资产缺失或未导入时为 false)。 |
BuildImportConfirmMessage(AesirGetStartedService.AesirSampleInfo)¶
导入确认框正文:包名 + 示例名 + 示例介绍 + 导入后位置。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
string |
— |
BuildNotImportedToastMessage(AesirGetStartedService.AesirSampleInfo)¶
未导入示例整卡点击的 Toast 文本(引导经右侧按钮导入——导入动作在窗口内完成,不必去 Package Manager)。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
string |
— |
BuildOpenSceneToastMessage(AesirGetStartedService.AesirSampleInfo)¶
打开场景动作的 Toast 提示文本(告知示例场景已打开、切换前的场景已保存)。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
string |
— |
BuildPingToastMessage(AesirGetStartedService.AesirSampleInfo)¶
定位动作的 Toast 提示文本(告知用户已在 Project 窗口选中示例文件夹)。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
string |
— |
GetSampleBadge(AesirGetStartedService.AesirSampleInfo)¶
档位徽章文本(无档位返回 null):名称中的 快捷 / 标准 / 严格,或目录序号(01 基础、其余进阶)。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
string |
— |
GetSampleGroup(AesirGetStartedService.AesirSampleInfo)¶
示例分组标题(渐进式教学顺序:MVC → MVP → 功能演示 → 实战 → 各模块)。
备注
展示启发式的登记点之一:按显示名前缀归类,未命中任何前缀的示例落入「功能演示」默认组。 新增教学分组时在此追加前缀规则,并同步 GetGroupOrder 的排序键。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
string |
— |
GetUpmSampleImportPath(AesirGetStartedService.AesirSampleInfo)¶
UPM / 嵌入式安装的示例导入后位置(项目相对路径,与 Package Manager 实际落地位置一致)。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
sample |
AesirGetStartedService.AesirSampleInfo |
— |
返回值
| 类型 | 说明 |
|---|---|
string |
— |
OpenPackageManager()¶
打开 Package Manager(UPM / 嵌入式安装的示例经其 Samples 标签页导入)。
Additional Notes¶
首个
## Additional Notes是增量生成文档标识符,请勿修改标题级别和内容!本文档由Script Doc Generator辅助生成。