This session will probably require tools not yet available… will have to come back to it once the SDK and simulator becomes available
Create an Xcode project
- You carte an xrOS assistant – but this is not yet available.. will just watch this section until I can really follow along.
- Windows are 2D and can be resized, shown along side other apps
- Volumes are designed for 3D content sizable in all three dimensions by the app, not the user
- Immersive Space, will allow you to start a starting point for your app, this is a Full space, hiding other app and enable hand tracking, you can also decide how much immersion the user has “Go beyond the Window with SwiftUI” should be checked out
- Recommend always start in a window and provide clear entry and exit points for immersion
- most of the code is in ContentView in the sample project
Simulator
- Show you a launcher view, click simulates tap, click and hold simulates pinch
- There are buttons on the bottom right to control the device
- There are multiple scenes to simulate location and lighting environments,
Xcode Previews
- When editing source file, the preview provide will open the canvas with a simulated device view to navigate around and see impact of your code changes
- There is an object mode to see content that extends beyond your app’s view.
Reality Composer Pro
- Creates swift packages for your content
- Content is organized into scenes
- Scene type for immersive space, uses inferred position of your feet, as the center of the coordinate system.
- You can get access to additional data like hand position. Users will be prompted to provide access to privacy data
Create an immersive scene
- You can use drag and drop to import and position usdz files.
- Double clicking on an object in the scene hierarchy will make it front and center of the scene editor window
- Immersive spaces are placed at a fixed place based on when it is launched.. you move around in the space to look around
Taret gestures to entities
- You can add a simple TapGesture().targetedToAnyEntity().onEnded { //command to run }
- The targetedToAnyEntity tells you which entity was tapped
- You must have both InputTargetComponent and CollisionComponent for Tap gestures to work