#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
Создайте базовый класс камеры, и вы сможете сфокусироваться на затронутом узле и задать расстояние от него.