次のSCNNode
があります。
_let box = SCNBox(width: 10.0, height: 10.0, length: 10.0, chamferRadius: 0)
let boxNode = SCNNode(geometry: box)
boxNode.position = SCNVector3(x: 0, y: 0, z: 0)
_
適用する場合:
_boxNode.scale = SCNVector3(x: 0.5, y: 0.5, z: 0.5)
_
ボックスのサイズには影響がないようです。これをboxNode.getBoundingBoxMin(&v1, max: &v2)
で確認しました。常に同じであり、画面上でも同じように表示されます。
何か不足していますか?ドキュメントは、スケールの設定がノードのジオメトリに影響を与え、したがって異なるサイズになることを意味します。
ありがとう。 J.
私はちょうど遊び場でテストしました、そしてそれは私にとって完璧に働きました。おそらく、小さいボックスを補うためにカメラがズームインしていますか?
import SceneKit
import SpriteKit
import XCPlayground
let sceneView = SCNView(frame: CGRect(x: 0, y: 0, width: 800, height: 600))
XCPlaygroundPage.currentPage.liveView = sceneView
var scene = SCNScene()
sceneView.scene = scene
sceneView.backgroundColor = SKColor.greenColor()
sceneView.debugOptions = .ShowWireframe
// default lighting
sceneView.autoenablesDefaultLighting = true
// a camera
var cameraNode = SCNNode()
cameraNode.camera = SCNCamera()
cameraNode.position = SCNVector3(x: 15, y: 15, z: 30)
scene.rootNode.addChildNode(cameraNode)
let box = SCNBox(width: 10.0, height: 10.0, length: 10.0, chamferRadius: 0)
let boxNode = SCNNode(geometry: box)
boxNode.position = SCNVector3(x: 0, y: 0, z: 0)
scene.rootNode.addChildNode(boxNode)
let centerConstraint = SCNLookAtConstraint(target: boxNode)
cameraNode.constraints = [centerConstraint]
let sphere = SCNSphere(radius: 4)
let sphereNode = SCNNode(geometry: sphere)
sphereNode.position = SCNVector3(x:15, y:0, z:0)
scene.rootNode.addChildNode(sphereNode)
//boxNode.scale = SCNVector3(x: 0.5, y: 0.5, z: 0.5)
最後の行のコメントを外すと、ボックス(10 x 10 x 10)のスイッチスイッチが球体(直径8)よりも大きく、球体よりも小さくなります。これはスケーリング後です: