-
Explora la entrada de accesorios espaciales en visionOS
Descubre cómo puedes integrar accesorios espaciales en tu app. Muestra contenido virtual, interactúa con tu app, da seguimiento en el espacio y obtén información sobre las interacciones para obtener experiencias virtuales mejoradas en visionOS.
Capítulos
- 0:00 - Comenzar
- 2:41 - Crea una app de escultura
- 13:37 - Accesorios de seguimiento con ARKit
- 14:45 - Consideraciones de diseño
Recursos
Videos relacionados
WWDC25
WWDC24
- Build a spatial drawing app with RealityKit
- Create enhanced spatial computing experiences with ARKit
WWDC21
WWDC20
-
Buscar este video…
-
-
0:09 - Get in-app transforms
// Get in-app transforms let session = SpatialTrackingSession() let configuration = SpatialTrackingSession.Configuration(tracking: [.accessory]) await session.run(configuration) -
4:57 - Check for accessory support
// Check spatial accessory support NotificationCenter.default.addObserver(forName: NSNotification.Name.GCControllerDidConnect, object: nil, queue: nil) { notification in if let controller = notification.object as? GCController, controller.productCategory == GCProductCategorySpatialController { } } -
7:20 - Anchor virtual content to an accessory
// Anchor virtual content to an accessory func setupSpatialAccessory(device: GCDevice) async throws { let source = try await AnchoringComponent.AccessoryAnchoringSource(device: device) guard let location = source.locationName(named: "aim") else { return } let sculptingEntity = AnchorEntity(.accessory(from: source, location: location), trackingMode: .predicted) } -
9:45 - Add haptics to an accessory
// Add haptics to an accessory let stylus: GCStylus = ... guard let haptics = stylus.haptics else { return } guard let hapticsEngine: CHHapticEngine = haptics.createEngine(withLocality: .default) else { return } try? hapticsEngine.start() -
11:25 - Access ARKit anchors from AnchorEntity
// Access ARKit anchors from AnchorEntity func getAccessoryAnchor(entity: AnchorEntity) -> AccessoryAnchor? { if let component = entity.components[ARKitAnchorComponent.self], let accessoryAnchor = component.anchor as? AccessoryAnchor { return accessoryAnchor } return nil }
-
-
- 0:00 - Comenzar
Esta sesión sobre el desarrollo de visionOS se centra en la creación de una app de escultura espacial usando la nueva compatibilidad con accesorios espaciales. visionOS ahora permite crear apps usando el control PlayStation VR2 Sense y Logitech Muse para un mejor control e inmersión. El control PS VR2 Sense, con sus botones, joystick y gatillo, es ideal para juegos y navegación, mientras que Logitech Muse, con sensores de fuerza y respuesta háptica, ayuda con las apps de productividad y creatividad. Esta sesión se centra en la creación de una app de escultura espacial usando la nueva compatibilidad con accesorios espaciales. visionOS ahora te permite crear apps usando el control PlayStation VR2 Sense y Logitech Muse para un mejor control e inmersión. El control PS VR2 Sense, con sus botones, joystick y gatillo, es ideal para juegos y experiencias interactivas divertidas, mientras que Logitech Muse, con sensores de fuerza y respuesta háptica, ayuda con las apps de productividad y creatividad. Conecta estos accesorios usando la estructura Game Controller y aprovecha RealityKit o ARKit para rastrear el movimiento y la rotación del accesorio. La sesión demuestra cómo crear una app de escultura y explora consideraciones de diseño para incorporar entradas de accesorios espaciales en apps de espacio completo y espacio compartido de visionOS.
- 2:41 - Crea una app de escultura
El proyecto de ejemplo crea la app de escultura configurando el proyecto de Xcode y la compatibilidad del controlador de juego espacial a través de una entrada plist. Luego, el proyecto usa la estructura Game Controller para descubrir y conectarse a accesorios espaciales. Una vez que se establece una conexión, la app ancla el contenido virtual a la ubicación Aim del accesorio usando RealityKit AnchorEntity. Esta técnica de anclaje permite mostrar una herramienta de escultura virtual que rastrea con precisión los movimientos del accesorio en el espacio. La app también maneja eventos de conexión y desconexión y usa el modo de seguimiento previsto para mejorar la representación del contenido virtual y garantizar una experiencia de escultura intuitiva y receptiva. Para habilitar interacciones con la arcilla virtual, la app necesita acceder a la transformación de la herramienta de escultura. Esto se logra a través de SpatialTrackingSession, que ahora admite el seguimiento de accesorios y permite que la app obtenga las transformaciones de cualquier AnchorEntity de accesorio. A continuación, el proyecto agrega tecnología háptica para ofrecer respuesta táctil y hacer que la experiencia de esculpir sea más envolvente. La app puede determinar qué mano sostiene el accesorio usando AccessoryAnchor de ARKit, que proporciona información sobre el movimiento relativo y el estado de seguimiento. Al combinar las API de RealityKit y ARKit, la app muestra una barra de herramientas reactiva que aparece según la lateralidad del usuario, lo que le permite alternar entre los modos de escultura. Esto mejora la experiencia del usuario y permite un control preciso sobre el proceso de esculpido.
- 13:37 - Accesorios de seguimiento con ARKit
Si estás creando una app con tu propia representación, ARKit ofrece API para rastrear accesorios espaciales, como GCStylus y GCController. Emplea AccessoryTrackingProvider para crear y manejar los objetos Accessory. Cuando los accesorios se conecten y desconecten, vuelve a ejecutar la sesión de ARKit con la nueva configuración. Los anclajes accesorios ofrecen actualizaciones similares a los anclajes manuales: puedes elegir entre actualizaciones precisas transmitidas o predicciones a pedido para obtener comentarios interactivos.
- 14:45 - Consideraciones de diseño
Se recomienda soporte adaptable para manos y accesorios espaciales a fin de lograr una máxima accesibilidad del usuario. ARKit ahora te permite integrar accesorios espaciales con controles de juegos para un mejor control de entrada y respuesta háptica en las vistas de SwiftUI. Usa el modificador receivesEventsInView para manejar tanto los gestos estándar de la mano como los eventos del control de juego. Puedes mostrar insignias del App Store para indicar compatibilidad con controles de juegos espaciales. Hay API disponibles para ocultar el indicador de inicio y las extremidades superiores, lo que aumenta la inmersión.