用途:维护和扩展现有 SceneKit 3D 场景与可视化,适用于 SCNView、SCNScene、SCNNode 场景图等场景。Apple 在 WWDC 2025 弃用 SceneKit,仅限维护;新项目、重大现代化改造和 USD/USDZ 管线应转向 RealityKit,现有应用仍可运行。
主要能力:场景搭建(SCNView、SCNScene、.scn/.dae/.abc 资源);节点与几何(rootNode、变换、SCNBox/SCNSphere 等内置图元、按名称查找节点);材质(SCNMaterial、PBR、透明度);灯光(环境光、平行光、点光、聚光、阴影、categoryBitMask,每节点最多 8 盏灯);相机(透视/正交、景深、HDR);动画(SCNAction、SCNTransaction、Core Animation);物理(动态/静态/运动学刚体、力与冲量、碰撞检测、重力);粒子系统;模型加载(SCNReferenceNode 按需加载、单位转换);SwiftUI 集成(SceneView 或 UIViewRepresentable 包装 SCNView)。
必要用法:场景需至少一个相机节点并设为 pointOfView,并配置灯光或使用 autoenablesDefaultLighting;物理形状应使用简化几何体而非完整网格;动态刚体变换应通过力/冲量修改,而非直接设置 position;需要碰撞回调时设置 contactTestBitMask 并指定 SCNPhysicsContactDelegate;点光/聚光设置 attenuationEndDistance;大模型使用 SCNReferenceNode 懒加载;导入导出资源需通过一致性与必需节点检查。
限制:SceneKit 已弃用,仅限维护;USD/USDZ 不是 SceneKit 默认加载路径;Game Center 相关功能交由 GameKit;SCNScene.Attribute 仅为元数据,不含 unit。更多自定义几何、着色器修饰符、约束、命中测试、渲染循环委托等见 references/scenekit-patterns.md。