【问题标题】:Drop a 3D character into the void将 3D 角色放入虚空
【发布时间】:2023-01-19 23:38:09
【问题描述】:

我试图让我的角色“掉落”到地板上的下一个高度。我试着用 physicsBody 来做。当我用盒子做时,效果很好,但当我尝试使用 3D 模型时,它根本不起作用。它向各个方向奇怪地移动,而不是直线下落……你知道如何正确地做吗?这是我的代码

let cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(0, 1, 15)
cameraNode.eulerAngles.x = 50
scene.rootNode.addChildNode(cameraNode)
        
let floor = SCNFloor()
floor.reflectionFalloffEnd = 0
floor.firstMaterial?.diffuse.contents = UIColor.red        
let floorNode = SCNNode(geometry: floor)
scene.rootNode.addChildNode(floorNode)
         
let modelScene = SCNScene(named: "Art.scnassets/max.scn")!
let modelNode = modelScene.rootNode.childNode(withName: "Max_rootNode", recursively: true)!
modelNode.position = SCNVector3(0, 5, 0)
scene.rootNode.addChildNode(modelNode)
         
modelNode.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)

【问题讨论】:

    标签: swift scenekit


    【解决方案1】:

    尝试研究 Apple 如何移动 WWDC 2016 上展示的角色。Fox 示例应用程序。他们使用一个运动学physicsBody,它完全由 updateAtTime 函数控制。

    https://developer.apple.com/library/archive/samplecode/Fox/Introduction/Intro.html#//apple_ref/doc/uid/TP40016154

    PS:一个动态的physicsBody不能直接用合适的方式控制。它被设计为仅由物理引擎移动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 2022-08-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      相关资源
      最近更新 更多