Как увеличить масштаб до узла сцены, отображаемой в swift ui

#swift #swiftui #scenekit

#swift #swiftui #scenekit

Вопрос:

У меня есть сцена Scenekit в swift UI, я сделал сцену UIViewRepresentable, как я могу увеличить один из узлов сцены, когда пользователь касается этого конкретного узла в сцене Scenekit?

 import SceneKit

struct HouseView : UIViewRepresentable {
    
    func makeUIView(context: Context) -> SCNView {
        return SCNView(frame: .zero)
    }

    func updateUIView(_ scnView: SCNView, context: Context) {
        let HouseScene = SCNScene(named: "House.scn")
        scnView.scene = HouseScene

        // allows the user to manipulate the camera
        scnView.allowsCameraControl = true

        // show statistics such as fps and timing information
        scnView.showsStatistics = false
        
        scnView.backgroundColor = UIColor.systemBackground
        
        scnView.defaultCameraController.maximumVerticalAngle = 10
        scnView.defaultCameraController.minimumVerticalAngle = -10
        scnView.defaultCameraController.maximumHorizontalAngle = 180
        scnView.defaultCameraController.minimumHorizontalAngle = -10
        
        scnView.isJitteringEnabled = true
        
        let CameraNode = HouseScene?.rootNode.childNode(withName: "CameraNode", recursively: true)
        CameraNode?.position = SCNVector3(x: 12, y:2, z: 0)
    }
}

struct HouseView_Previews: PreviewProvider {
    static var previews: some View {
        HouseView()
    }
}`''
 

Ответ №1:

Пожалуйста, посмотрите этот пост: 54058938

Создайте базовый класс камеры, и вы сможете сфокусироваться на затронутом узле и задать расстояние от него.