×

[SceneKit]场景编辑器(三)

96
里脊糖醋
2017.07.20 07:36* 字数 572

记得15年毕业时, 当时iOS开发的可视化编程刚刚开始, 很多公司不愿接收Xcode可视化开发, 以前面试的时候, 总会被人家问起开发主要使用纯代码还是可视化编程, 对于那些不愿使用可视化编程的公司果断拒绝. 实时证明, 可视化编程并没有像那些不愿接收可视化编程的人说的那样带来那么多问题, 反而他会大大提升我们的工作量, 工作的目的最终目的是为了用最高的效率完成工作, 此处仅仅是想吐槽一番.

Xcode也同样为我们的开发3D游戏准备可一个超cool的场景编辑器(Scene Editor), 使用它, 我们可以仅仅通过可视化的方式类配置我们游戏里面的场景, 而且可以在不用运行工程的情况下, 通过运行场景编辑器来查看动画效果, 是不是很cool.

我们使用场景编辑器来显示一个立方体
首先如在[SceneKit]搭建Scene3D场景(一)文中介绍, 新建一个工程.

但是这次不要art.scnassets删除.


屏幕快照 2017-07-22 下午7.47.06.jpg

首先, 先把资源文件的ship.scn和texture.png删除

然后新建一个.scn文件.

选中非art.scnassets文件, cmd+n 新建一个SceneKit Scene File文件.


屏幕快照 2017-07-22 下午7.56.26.png

然后起名为ship, 文件Group选择art.scnassets


屏幕快照 2017-07-22 下午8.00.51.png

上面说到, 新建scn文件时要先选中非art.scnassets文件, 因为当你选中art.scnassets文件时, 执行cmd+n, 只会生成一个File文件, 并不能创建一个scn文件

然后工程的目录应该是这样的
左边的目录多了一个ship.scn


左边的目录多了一个ship.scn


右边的场景默认有一个camera, 这里先不要管camera是什么, 先留着


右边的场景默认有一个camera

先来托一个盒子box看看效果, 要比OpenGL ES 方便很多呀


屏幕快照 2017-07-22 下午8.10.11.jpg

按照图示, 三步来创建一个box
关与右侧的这些不同的值是什么意思, 请自行Google

OK, 此时回到GameViewController.swift文件, 删除所有的代码
把一下代吗放进去

import UIKit
import SceneKit

class GameViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // 1. 从资源中加载一个scene
        let scene = SCNScene(named: "art.scnassets/ship.scn")!
        // 2. 获取当前ViewController的scnView
        let scnView = self.view as! SCNView
        // 3. 把从资源中加载的scene加载到当前的scnView
        scnView.scene = scene
    }
}

然后run工程你将会看到


Simulator Screen Shot 2017年7月22日 下午8.18.56.png

此时就加载了一个box到场景, 并渲染出来.

SceneKit
Web note ad 1