帮助开发者高效开发、调试并优化 IWSDK 的 PanelUI 界面面板。
该技能材料表现为面向 IWSDK UI 面板开发的提示性工作流文档,未见需要密钥、远程通信、本机执行或额外数据访问的描述,整体风险较低。主要需留意其来源虽为 GitHub 开源仓库,但社区采用度低、维护状态未知且许可证未声明,供应链可信度略受影响。
材料明确标注“需要的密钥/环境变量:无”,README 也未要求 API key、token 或其他凭证,未见凭证收集、存储或滥用风险。
材料标注“远程端点 host:无”,内容主要是本地 UI 开发流程与示例代码,未描述向外部服务发送用户数据、遥测或截图上传等行为。
系统检查项已标记为 prompt-only;README 提供的是开发示例与调试建议,不是要求该技能自行启动进程、执行脚本或调用系统命令,因此未见额外代码执行权限。
文档仅建议开发者修改本地 `.uikitml`/面板配置并查看截图效果,未声明该技能可直接读取、写入或批量访问本地文件、用户数据、系统资源或敏感目录。
来源为 GitHub 上的开源仓库,源码可审计,这是明显的降风险因素;但仓库 star 为 0、维护状态未知、许可证未声明,社区验证和持续维护信号偏弱,建议在采用前复核仓库活跃度与具体内容。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "iwsdk-ui-panel" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/iwsdk-ui-panel/SKILL.md 2. 保存为 ~/.claude/skills/iwsdk-ui-panel/SKILL.md 3. 装好后重载技能,告诉我可以用了
请为 IWSDK 应用生成一个 PanelUI 设置面板,包含标题、开关、下拉选择和保存按钮,并给出组件结构与示例代码。
产出一个可用于 IWSDK 的面板组件方案,包含布局说明与示例实现代码。
我在 IWSDK 的 PanelUI 中遇到按钮重叠和间距异常,请分析常见原因,并给出逐步排查方法和修复建议。
得到针对布局问题的诊断思路、排查步骤,以及可执行的修复建议。
请审查这个 IWSDK PanelUI 面板的交互与视觉层级,提出可用性、信息组织和样式优化建议,并给出改进后的设计方向。
获得一份面向可用性与视觉一致性的 UI 优化建议清单和改版方向。
This skill teaches the efficient workflow for developing UI panels in IWSDK applications using temporary ScreenSpace positioning and backdrop techniques.
When working on a UI panel, follow these steps for rapid iteration:
Temporarily add the ScreenSpace component to your PanelUI entity to make it fill the 2D screen during development:
import { ScreenSpace } from '@iwsdk/core';
world
.createTransformEntity(panelHolder)
.addComponent(PanelUI, {
config: '/ui/your-panel.json',
maxWidth: 1.0,
maxHeight: 0.5,
})
.addComponent(ScreenSpace, {
width: '90vw', // Fill 90% of viewport width
height: '90vh', // Fill 90% of viewport height
top: '5vh', // Center with 5% margins
left: '5vw',
});
Important: This is temporary for development only. Remove before production.
Create a solid color backdrop far from your gameplay area for clean UI visibility:
const backdrop = new Mesh(
new BoxGeometry(20, 20, 0.1),
new MeshBasicMaterial({ color: 0x1a1a2e }),
);
backdrop.position.set(0, 0, -50); // Far from gameplay
scene.add(backdrop);
Move the camera very close to the backdrop (within 0.5m) to eliminate background distractions:
// Position camera very close to backdrop for clean UI development
camera.position.set(0, 0, -49.5); // Just 0.5m from backdrop at z=-50
camera.lookAt(0, 0, -50);
Why close? The backdrop must fill the entire field of view to block out the 3D scene. Being far away (50m) won't work - you'll still see the environment around the edges.
Now you can rapidly iterate on your UI:
.uikitml fileThe ScreenSpace component makes the panel "follow" the camera, so it appears as a 2D overlay on your backdrop.
When you enter VR mode:
This dual-mode behavior is handled automatically by the ScreenSpaceUISystem.
UIKit components expose size information through signals. Log these to debug layout issues:
const document = PanelDocument.data.document[entity.index];
console.log('computedSize:', document.computedSize); // Intrinsic size in cm
console.log('targetSize:', document.targetSize); // Target size in meters
console.log('rootElement.size.value:', document.rootElement?.size?.value);
console.log('document.scale:', document.scale); // Applied scale
Understanding the output:
computedSize: UIKit's rendered size in centimeters (based on your CSS)targetSize: The requested size in meters (from PanelUI maxWidth/maxHeight or ScreenSpace constraints)document.scale: Uniform scale factor applied to fit target while preserving aspect ratioExample output:
computedSize: { width: 100, height: 50 } // 100cm × 50cm
targetSize: { width: 0.274, height: 0.168 } // 0.274m × 0.168m
document.scale: { x: 0.274, y: 0.274, z: 0.274 } // Scaled down by 0.274x
The ScreenSpace component positions panels using CSS-like properties:
.addComponent(ScreenSpace, {
width: '90vw', // CSS size: px, vw, vh, %, auto
height: '90vh', // CSS size: px, vw, vh, %, auto
top: '5vh', // CSS position: px, %, vh, auto
bottom: 'auto', // CSS position: px, %, vh, auto
…
用于逐帧调试 WebXR 场景中的物理、动画与实时交互行为。
使用 iwsdk CLI 测试 Havok 物理系统的重力与刚体行为表现
在 WebXR 场景中模拟抓取物体,便于交互测试与搬运操作验证。
指导你在 IWSDK 项目中实现深度感知遮挡并排查显示异常问题
使用 iwsdk CLI 测试音频示例的加载、播放状态、停止与空间音频功能。
通过 iwsdk CLI 验证 ECS 核心功能与示例运行状态,辅助快速测试排障。
帮助你创建、修改、调试并预览 IWSDK 应用中的 PanelUI 界面组件。
使用 iwsdk CLI 针对 poke 示例测试 UI 系统行为与兼容性。
帮助规划 IWSDK 新功能、系统架构与代码模式,并提供最佳实践建议。
帮助开发者用 iwsdk CLI 测试 XR 交互与面板音频行为是否正常。
指导在 IWSDK 项目中实现物理模拟、交互物体与碰撞调试。
用于为 OpenClaw 控制界面编写、调试与扩展端到端自动化测试流程。