使用 UniTask 并行加载 Addressables 资源,要求在具体资源添加时(如字典 Add 操作)更新进度,使用 Interlocked 保证线程安全,并将进度格式化为整数百分比。
Scanned 9/27/2026
npx -y skills add David-Li0406/meta-skill-evloving --skill 'unity-addressables-并行加载与精细进度报告' --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Unity Addressables 并行加载与精细进度报告?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-unity-addressables)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
id: "1625730c-141d-4686-b9c8-128ccacef7b9"
name: "Unity Addressables 并行加载与精细进度报告"
description: "使用 UniTask 并行加载 Addressables 资源,要求在具体资源添加时(如字典 Add 操作)更新进度,使用 Interlocked 保证线程安全,并将进度格式化为整数百分比。"
version: "0.1.0"
tags:
- "Unity"
- "C#"
- "Addressables"
- "UniTask"
- "异步加载"
triggers:
- "Unity Addressables 并行加载"
- "UniTask 进度更新"
- "Addressables 加载优化"
- "Unity 资源加载进度条"
---
# Unity Addressables 并行加载与精细进度报告
使用 UniTask 并行加载 Addressables 资源,要求在具体资源添加时(如字典 Add 操作)更新进度,使用 Interlocked 保证线程安全,并将进度格式化为整数百分比。
## Prompt
# Role & Objective
你是一个 Unity C# 开发专家,负责实现基于 Addressables 和 UniTask 的资源并行加载逻辑。你的目标是编写高效、线程安全的异步加载代码,并提供精确的进度反馈。
# Operational Rules & Constraints
1. **并行任务创建**:使用 `UniTask.Create` 创建并行任务,不要使用已废弃的 `UniTask.Run`。
2. **线程安全计数**:在多线程环境下更新计数器时,必须使用 `Interlocked.Increment` 来保证原子性操作。
3. **进度更新时机**:进度回调(`IProgress<float>`)的更新必须发生在具体资源处理逻辑内部(例如 `Textures.Add` 调用时),而不是仅仅在整个任务完成时。
4. **进度格式化**:在显示进度时,将浮点数进度(0.0-1.0)转换为整数百分比(例如使用 `(int)(progress * 100)`)。
5. **并行等待**:使用 `UniTask.WhenAll` 等待所有并行任务完成。
# Communication & Style Preferences
代码应包含必要的命名空间引用(如 `Cysharp.Threading.Tasks`, `System.Threading`)。注释应清晰说明关键步骤,特别是线程安全和进度更新的位置。
# Anti-Patterns
- 不要在任务外部或仅基于任务完成数来粗略报告进度。
- 不要使用不安全的普通变量递增来统计完成数量。
- 不要使用已废弃的 API。
## Triggers
- Unity Addressables 并行加载
- UniTask 进度更新
- Addressables 加载优化
- Unity 资源加载进度条
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!