diff --git a/Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/Scenes/Gesture.usda b/Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/Scenes/Gesture.usda index c4b33a9..043275d 100644 --- a/Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/Scenes/Gesture.usda +++ b/Packages/RealityKitContent/Sources/RealityKitContent/RealityKitContent.rkassets/Scenes/Gesture.usda @@ -25,7 +25,7 @@ def Xform "Root" uint group = 1 uniform token info:id = "RealityKit.Collider" uint mask = 4294967295 - token type = "Default" + token type = "Trigger" def RealityKitStruct "Shape" { @@ -33,15 +33,50 @@ def Xform "Root" token shapeType = "Box" } } + + def RealityKitComponent "HierarchicalFade" + { + uniform token info:id = "RealityKit.HierarchicalFade" + } } def "Sun" ( - active = false prepend references = @../Models/Sun.usdz@ ) { float3 xformOp:scale = (1, 1, 1) uniform token[] xformOpOrder = ["xformOp:translate", "xformOp:orient", "xformOp:scale"] + + def RealityKitComponent "HierarchicalFade" + { + uniform token info:id = "RealityKit.HierarchicalFade" + float opacity = 0 + } + + def RealityKitComponent "InputTarget" + { + uniform token info:id = "RealityKit.InputTarget" + } + + def RealityKitComponent "Collider" + { + uint group = 1 + uniform token info:id = "RealityKit.Collider" + uint mask = 4294967295 + token type = "Trigger" + + def RealityKitStruct "Shape" + { + float3 extent = (0.2, 0.2, 0.19999999) + float radius = 0.1 + token shapeType = "Sphere" + + def RealityKitStruct "pose" + { + float3 position = (3.7252903e-8, 0, 4.8428774e-8) + } + } + } } } diff --git a/WhatVisionOSCanDo/ShowCase/Gesture/GestureView.swift b/WhatVisionOSCanDo/ShowCase/Gesture/GestureView.swift index 8e40250..e7a5e96 100644 --- a/WhatVisionOSCanDo/ShowCase/Gesture/GestureView.swift +++ b/WhatVisionOSCanDo/ShowCase/Gesture/GestureView.swift @@ -15,6 +15,8 @@ enum GestureToggles { struct GestureView: View { @State private var enabledGesture: GestureToggles = .tap + @State private var isNight: Bool = true + var body: some View { VStack { @@ -25,9 +27,16 @@ struct GestureView: View { } catch { print("load entity error, error is \(error)") } + } update: { content in + let root = content.entities.first + let moon = root?.findEntity(named: "Moon") + let sun = root?.findEntity(named: "Sun") + moon?.components[OpacityComponent.self]?.opacity = isNight ? 1.0 : 0.0 + sun?.components[OpacityComponent.self]?.opacity = isNight ? 0.0 : 1.0 } - .gesture(enabledGesture == .tap ? TapGesture().targetedToAnyEntity().onEnded { _ in + .gesture(enabledGesture == .tap ? TapGesture().targetedToAnyEntity().onEnded { event in print("TapGesture ended") + isNight = !isNight } : nil) .gesture(enabledGesture == .drag ? DragGesture().targetedToAnyEntity().onChanged { value in let location = value.convert(value.gestureValue.location3D, from: .global, to: value.entity.parent!)