Post

Replies

Boosts

Views

Activity

Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value
So I'm trying to use the Body Motion Capture sample code provided by Apple. Not using storyboard. Using SwiftUI content View with a button to go to an ARView. The app builds fine but when I use the button to switch to ARView, im getting a runtime error. Any ideas out to fix this ? Thanks :) import UIKit import RealityKit import ARKit import Combine import SwiftUI import Foundation struct NavigationIndicator: UIViewControllerRepresentable {    typealias UIViewControllerType = ARVieww    func makeUIViewController(context: Context) -> ARVieww {       return ARVieww()    }    func updateUIViewController(_ uiViewController:    NavigationIndicator.UIViewControllerType, context:    UIViewControllerRepresentableContext) { } } class ARVieww: UIViewController, ARSessionDelegate {     var character: BodyTrackedEntity?     let characterOffset: SIMD3 = [0, 0, 0] // Offset the character by one meter to the left     let characterAnchor = AnchorEntity()          @IBOutlet var arView: ARView!          override func viewDidAppear(_ animated: Bool) {         print("yay")         super.viewDidAppear(animated)         arView.session.delegate = self                  // If the iOS device doesn't support body tracking, raise a developer error for         // this unhandled case.         guard ARBodyTrackingConfiguration.isSupported else {             fatalError("This feature is only supported on devices with an A12 chip")         }         // Run a body tracking configration.         let configuration = ARBodyTrackingConfiguration()         arView.session.run(configuration)                  arView.scene.addAnchor(characterAnchor)                  // Asynchronously load the 3D character.         var cancellable: AnyCancellable? = nil         cancellable = Entity.loadBodyTrackedAsync(named: "character/robot").sink(             receiveCompletion: { completion in                 if case let .failure(error) = completion {                     print("Error: Unable to load model: (error.localizedDescription)")                 }                 cancellable?.cancel()         }, receiveValue: { (character: Entity) in             if let character = character as? BodyTrackedEntity {                 // Scale the character to human size                 character.scale = [1.0, 1.0, 1.0]                 self.character = character                 cancellable?.cancel()             } else {                 print("Error: Unable to load model as BodyTrackedEntity")             }         })     }          func session(_ session: ARSession, didUpdate anchors: [ARAnchor]) {         for anchor in anchors {             guard let bodyAnchor = anchor as? ARBodyAnchor else { continue }                          // Update the position of the character anchor's position.             let bodyPosition = simd_make_float3(bodyAnchor.transform.columns.3)             characterAnchor.position = bodyPosition + characterOffset             // Also copy over the rotation of the body anchor, because the skeleton's pose             // in the world is relative to the body anchor's rotation.             characterAnchor.orientation = Transform(matrix: bodyAnchor.transform).rotation                 if let character = character, character.parent == nil {                 // Attach the character to its anchor as soon as                 // 1. the body anchor was detected and                 // 2. the character was loaded.                 characterAnchor.addChild(character)             }         }     }        }
1
0
738
Aug ’21