Immersive experiences
skills-apple-human-interface-guidelines 用于所有UI界面遵守苹果人机交互手册,包含PC、andorid、iOS、小程序的UI治理。by the way 其他营销号都是炒作,根本不懂UI设计。
npx -y skills add OPN48/skills-apple-human-interface-guidelines --skill immersive-experiencesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
visionOS沉浸式体验设计规范,包含空间、穿透、全景内容。Invoke when designing spatial/immersive experiences for visionOS.
SKILL.md
2.3 KB, as published. Nobody here has run it
iOS Immersive Experiences - 沉浸式体验设计指南
基于 Apple Human Interface Guidelines 的沉浸式体验设计规范(主要针对 visionOS)。
核心概念
空间类型
- Shared Space: 与其他应用并列运行
- Full Space: 独占空间,隐藏其他应用
穿透 (Passthrough)
- 实时视频显示现实环境
- 数字旋钮管理穿透程度
- 靠近物体时自动变暗
沉浸风格
Mixed (混合)
- 与穿透混合
- 不定义边界
- 靠近物体时内容半透明
Progressive (渐进)
- 自定义环境部分替代穿透
- 可定义沉浸范围(120-360度)
- 数字旋钮调整深度
Full (完全)
- 360度全沉浸
- 完全替代穿透
- 传输到新环境
最佳实践
_launch 策略
- 优先使用 Shared Space 或 Mixed
- 让用户选择何时加深沉浸
沉浸时刻
- 仅为有意义的内容和时刻
- 不需要完全沉浸的不要强制
- 使用提示引导注意力
视觉舒适
- 重要内容放在视野中心
- 避免边缘快速运动
- 避免让用户旋转虚拟世界
过渡设计
- 平滑可预测
- 让用户选择进出时机
- 明确退出按钮含义
虚拟手
设计要点
- 匹配用户手的位置和手势
- 避免过大的虚拟手
- 数据中断时淡出
环境创建
设计原则
- 最小化干扰内容
- 帮助区分可交互对象
- 动画保持微妙
- 创建广阔环境
- 使用空间音频
避免
- 扁平360度图像
- 缺乏地面平面
- 资产重复
Android 适配
注:沉浸式体验主要针对 visionOS,Android 无直接对应。
相关概念
- 全面屏沉浸模式: 隐藏状态栏和导航栏
- ARCore: 增强现实体验
沉浸模式实现
// 隐藏系统UI
window.decorView.systemUiVisibility = (
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
or View.SYSTEM_UI_FLAG_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
)
AR 应用
// ARCore 会话配置
val config = Config(session)
config.updateMode = Config.UpdateMode.LATEST_CAMERA_IMAGE
session.configure(config)