关于 spatial-swiftui-developer
面向空间 SwiftUI 开发者的技能,涵盖场景与渲染方式选择、RealityKit 集成和交互模式,并将架构及构建问题转交相关技能,按需查阅参考资料。
主要功能
- 01渲染路径选择
- 02Model3D 与 RealityView 指导
- 03RealityKit 内容变更模式
- 04空间交互与布局指导
- 05场景生命周期与窗口管理指导
适用场景
- 01使用 Model3D 显示 3D 资源
- 02构建自定义 RealityKit 实体图
- 03添加空间手势和控件
- 04管理窗口与沉浸式场景
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tomkrikorian/ visionosagents --skill spatial-swiftui-developer安装后在 Claude Code 中输入/spatial-swiftui-developer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/buttons-and-controls.mdinteraction.mdmodel3d.mdrealityview.mdspatial-layout.mdswiftui-scene-lifecycle.mdswiftui-spatial-overview.mdwindowing-immersion.md详细介绍
Spatial SwiftUI 开发者
快速开始
- 如果任务确实涉及表面选择、场景所有权或文件结构,请先切换到
spatial-app-architecture。 - 如果任务涉及
Chart3D、SurfacePlot、3D 图表标记或Chart3DPose,请切换到$swiftui-chart3d-developer。 - 选择渲染路径:简单资产展示使用
Model3D,自定义实体图和附件使用RealityView。 - 仅加载匹配的参考文件。
- 保持异步加载,并在指定入口点中修改 RealityKit 内容。
- 将构建、启动、模拟器和测试问题转交给
build-run-debug。
以下情况请加载参考资料
| 参考资料 | 使用时机 |
|---|---|
swiftui-spatial-overview.md | 需要了解此技能的整体功能概览、示例和路由指南时。 |
model3d.md | 使用 Model3D 进行异步模型加载、资产、动画或操作时。 |
realityview.md | 设置 RealityView、附件或 RealityKit 集成模式时。 |
interaction.md | 实现空间输入的手势或操作模式时。 |
buttons-and-controls.md | 实现可见的 SwiftUI 按钮、设置为按钮样式的链接、工具栏、表单或控件表面时。 |
swiftui-scene-lifecycle.md | 检查官方 Window、WindowGroup、ImmersiveSpace、打开/关闭、恢复和启动约定时。 |
windowing-immersion.md | 管理窗口、体积表面或沉浸空间转换时。 |
spatial-layout.md | 使用 SwiftUI 空间布局 API、调整尺寸或使用调试工具时。 |
工作流
- 确认架构和场景所有权已经确定。
- 选择渲染表面:
Model3D、RealityView、窗口、体积或沉浸式场景。 - 仅加载匹配的参考文件。
- 实现最小可行场景,并在正确的层中进行修改。
- 概述所选的 SwiftUI 到 RealityKit 集成路径。
注意事项
- 每个可见按钮都必须显式设置
.buttonBorderShape(...)(带标签的操作使用.capsule,仅图标按钮使用.circle,卡片式按钮使用与背景匹配的.roundedRectangle(radius:)——在 visionOS 上,这也决定按钮悬停高亮的形状)。非按钮悬停表面应将.hoverEffect()与匹配的.contentShape(.hoverEffect, ...)配合使用。编写任何控件代码前都要加载buttons-and-controls.md——即使按钮只是大型任务中的附带内容,也同样适用。 - 保持 RealityKit 加载异步;不要在主执行器上阻塞资产或实体加载。
- 在
RealityView的 make 或 update 闭包中,或在系统中修改 RealityKit 内容,不要在 SwiftUI body 代码中修改。 - 仅在需要简单展示和布局而非自定义 ECS 图时使用
Model3D。 - 将
ImmersiveSpace视为具有自身生命周期和环境操作的独立场景。 - 仅将
defaultSize用作初始提示;系统可能会限制尺寸或恢复几何状态。 - 对于 Chart3D 和空间数据可视化,请使用
$swiftui-chart3d-developer。 - 如果问题涉及启动、构建、模拟器、代码签名或调试工作流,请切换到
build-run-debug。 - 如果问题涉及场景边界、所有权或功能拆分,而非 API 用法,请使用
spatial-app-architecture。 - visionOS 27 的 SwiftUI 未新增场景、体积或沉浸式 API;此处的指南适用于 visionOS 27。27 版新增内容:手势
inputKinds:过滤(参见interaction.md),以及同样适用于 visionOS 的跨平台工具栏和导航改进。
输出要求
请提供:
- 选用的渲染和场景路径
- 使用了哪些参考资料
- 涉及的 API 范围(
Model3D、RealityView、窗口管理、交互或布局) - 主要的实现约束或注意事项
- 如有需要,返回架构、Chart3D 或构建/调试相关内容的路径
评论
支持 Markdown