2016-04-07 2 views

ответ

0

Заимствования из этого ответа: https://stackoverflow.com/a/24127282/887210

ключевая часть вашего вопроса:

SCNBox(width: 1, height: 4, length: 9, chamferRadius: 0) 

Это рисует прямоугольник с SceneKit и UIKit. Он настроен для использования в пользовательском UIViewController в вашем проекте, но его можно легко адаптировать к другим применениям.

Пример кода:

override func loadView() { 
    // create a scene view with an empty scene 
    let sceneView = SCNView(frame: CGRect(x: 0, y: 0, width: 300, height: 300)) 
    let scene = SCNScene() 
    sceneView.scene = scene 

    // default lighting 
    sceneView.autoenablesDefaultLighting = true 

    // a camera 
    let cameraNode = SCNNode() 
    cameraNode.camera = SCNCamera() 
    cameraNode.position = SCNVector3(x: 0, y: 0, z: 15) 
    scene.rootNode.addChildNode(cameraNode) 

    // a geometry object 
    let box = SCNBox(width: 1, height: 4, length: 9, chamferRadius: 0) 
    let boxNode = SCNNode(geometry: box) 
    scene.rootNode.addChildNode(boxNode) 

    // configure the geometry object 
    box.firstMaterial?.diffuse.contents = UIColor.redColor() 
    box.firstMaterial?.specular.contents = UIColor.whiteColor() 

    // set a rotation axis (no angle) to be able to 
    // use a nicer keypath below and avoid needing 
    // to wrap it in an NSValue 
    boxNode.rotation = SCNVector4(x: 1, y: 1, z: 0.0, w: 0.0) 

    // animate the rotation of the torus 
    let spin = CABasicAnimation(keyPath: "rotation.w") // only animate the angle 
    spin.toValue = 2.0*M_PI 
    spin.duration = 10 
    spin.repeatCount = HUGE // for infinity 
    boxNode.addAnimation(spin, forKey: "spin around") 

    view = sceneView // Set the view property to the sceneView created here. 
} 
+0

Так как я бы включить это в проект, который не является игрой. Я бы добавил sceneView в свой диспетчер представлений – Tob

+0

Я обновил пример, чтобы вы могли увидеть, как его встраивать в подкласс UIViewController. Вы в основном переопределяете метод loadView() 'и устанавливаете свойство' view' переменной 'sceneView'. – ColGraff

+0

Спасибо, что отлично работает :) – Tob