2015-10-25 3 views
0

Я хочу добавить файл .dae, который находится в моей папке art.assets. к месту происшествия. thats it lol и в быстрой предпочтительности, но я возьму Objective-C, а также. Спасибо здесь, код, который дает вам только базовый файл Xcode.Как добавить SCNode в SceneKit из основной папки art.scnassets

Код:

import UIKit 
import QuartzCore 
import SceneKit 

//============================================================ 
class GameViewController: UIViewController { 
override func viewDidLoad() { 
    super.viewDidLoad() 
    //------------------------- 
    let scene = SCNScene(named: "art.scnassets/GenricFootball.dae")! 

    let scnView = self.view as! SCNView 
    scnView.scene = scene 
    scnView.allowsCameraControl = true 
    scnView.showsStatistics = false 
    scnView.backgroundColor = UIColor.whiteColor() 
    let tapGesture = UITapGestureRecognizer(target: self, action: "handleTap:") 
    scnView.addGestureRecognizer(tapGesture) 



    //-------------------------- 
    let cameraNode = SCNNode() 
    cameraNode.camera = SCNCamera() 
    scene.rootNode.addChildNode(cameraNode) 
    cameraNode.position = SCNVector3(x: 0, y: 0, z: 15) 
    //----------------------------------------------- 
    let lightNode = SCNNode() 
    lightNode.light = SCNLight() 
    lightNode.light!.type = SCNLightTypeOmni 
    lightNode.position = SCNVector3(x: 0, y: 10, z: 10) 
    scene.rootNode.addChildNode(lightNode) 
    //----------------------------------------------- 
    let ambientLightNode = SCNNode() 
    ambientLightNode.light = SCNLight() 
    ambientLightNode.light!.type = SCNLightTypeAmbient 
    ambientLightNode.light!.color = UIColor.darkGrayColor() 
    scene.rootNode.addChildNode(ambientLightNode) 
    //---------------------------------------------- 
    //_ = scene.rootNode.childNodeWithName("Bob", recursively: true)! 
    // _ = scene.rootNode.childNodeWithName("CampusField1", recursively: true)! 

    //-------------------------------------------------------- 
    // Bob.runAction(SCNAction.repeatActionForever(SCNAction.rotateByX(0, y: 2, z: 0, duration: 1))) 

    } 

func handleTap(gestureRecognize: UIGestureRecognizer) { 
    let scnView = self.view as! SCNView 
    let p = gestureRecognize.locationInView(scnView) 
    let hitResults = scnView.hitTest(p, options: nil) 
    if hitResults.count > 0 { 
      let result: AnyObject! = hitResults[0] 
      let material = result.node!.geometry!.firstMaterial! 
      SCNTransaction.begin() 
      SCNTransaction.setAnimationDuration(0.5) 
      SCNTransaction.setCompletionBlock { 
      SCNTransaction.begin() 
      SCNTransaction.setAnimationDuration(0.5) 
      material.emission.contents = UIColor.blackColor() 
      SCNTransaction.commit() 
     } 
      material.emission.contents = UIColor.yellowColor() 
     SCNTransaction.commit() 
     } 
    } 
    override func shouldAutorotate() -> Bool { 
    return true 
    } 

    override func prefersStatusBarHidden() -> Bool { 
    return true 
    } 

    override func supportedInterfaceOrientations() ->  UIInterfaceOrientationMask { 
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone { 
     return .AllButUpsideDown 
    } else { 
     return .All 
    } 
    } 
    override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Release any cached data, images, etc that aren't in use. 
    } 

} 
+0

Что вы видите, когда вы запускаете этот код? Что является результатом вызова SCNScene (named: ...)! ? –

+0

Я отправил свой код так, и если это больше или лучше, пожалуйста, дайте мне знать. благодаря –

ответ

1

я к объектам на сцене, используя этот код

Код:

let scene = SCNScene(named: "art.scnassets/GenricFootball.dae")! 
    let characterscene = SCNScene(named: "art.scnassets/untitled.dae")! 
    let monkey: SCNNode = characterscene.rootNode.childNodeWithName("Cube_001", recursively: true)! 
    scene.rootNode.addChildNode(monkey) 
    monkey.position = SCNVector3(x: 5, y: 0, z: 5)