[SceneKit专题]6.Scene Editor场景编辑器

说明

  • 本系列文章的学习首先要感谢史前图腾的共享精神,在他的系列文章中有详细的解释,但是他的代码都是Swift写的.并且代码的解释比较少,
  • 在这里我提供了demo-OC版供大家参考和学习,基础知识会一一为大家解释,但是OC版的demo只提供最终合集,方便一次到位减少打开工程的次数
  • demo地址:
    OC-地址
    swif-地址

Scene Kit editor

Xcode自带了一个简单好用的3D场景编辑器,当选中或创建一个xxx.scn文件时就会出现

[SceneKit专题]6.Scene Editor场景编辑器_第1张图片
Snip20170912_3.png

区域解释:

[SceneKit专题]6.Scene Editor场景编辑器_第2张图片
image.png

1.Scene graph(场景节点树):场景中每一个元素都显示在这里,可以拖拽树状结构的元素来控制父子关系.
2.Design area(设计区):效果呈现区,可以拖拽,旋转和缩放,也可以从对象库中拖放原始节点到这里.
3.Inspectors(检查器):和场景类型有关的检查器,检查器中的内容将根据你选中的节点不同而改变,最上方横放的有五个新的检查器

  • Node Inspector(节点检查器):SCNNode对象有关的属性.
  • Attributes Inspector(属性检查器):和选中节点类型有头的检查器,如果选中的是Box,可以设置长宽高,如果是-
  • Sphere,可以设置半径.
  • Material Inspector(材料检查器):设置节点的颜色和纹理
  • Physics Inspector(物理检查器):设置物理行为的配置
  • Scene Inspector(场景检查器):场景中所有节点都有的全局检查器,可以设置场景中的一些属性.

4.Properties(属性):检查器的内部属性
5.Object Library(对象库):所有可用的SCNNode对象,从系统自带到用户自定义的节点都有.SCNAction对象也在这里.
6.Toolbar(工具条):包含一些重要元素,从左到右,按钮功能

  • Add/delete node(添加/删除节点):选中节点树中的节点,添加一个子元素或者删除选中节点
  • Search filter(搜索过滤器):复杂场景下用来快速搜索
  • Expand/collapse scene graph area(可收缩场景图表区):打开/关闭左侧的场景图表区
  • Coordinate system(坐标系): 选择一个活跃坐标系来编辑你的节点,可选local,parent,world或者screen.
  • View/camera select(视点/相机选择): 当有多个相机时,可以选择相机列表中任一个活跃视点
  • Play/stop scene(播放/暂停场景):播放/暂停物理和动作模拟
  • Expand/collapse actions(收缩动作区):打开/关闭下面的动作区

7.Actions area(动作区):给节点添加动作时,可以从对象库中拖放一个action到这里,就会影响被选中的节点

Basic scene navigation基础场景导航

Pan(拖动):Magic鼠标直接在滚轮处上下左右移动,触摸板用双指移动,普通鼠标按住option键拖动
Rotate(旋转):按下左键并移动鼠标
Zoom(缩放):按住option键使用滚轮缩放,触摸板用捏合手势.
Multi-selection(多选):按住Command单击多选.
Basic node manipulation基础节点操作

以Box节点为例

[SceneKit专题]6.Scene Editor场景编辑器_第3张图片
image.png
[SceneKit专题]6.Scene Editor场景编辑器_第4张图片
image.png
  • Positioning(定位):拖动高亮的坐标轴,可以在坐标轴方向上移动.拖动灰色扇形区,可以沿所有平面移动
  • Rotatation(旋转):拖动高亮的坐标轴曲线,可以旋转节点
    附加操作:移动节点时,按住Command键,可放大并仔细检查位置.
    旋转节点时,按住Command键,可放大并仔细检查角度.
    按住Option键并拖动,可复制一个共享属性的副本,就是说对原本做的属性更改操作将影响副本.如果想取消共享属性,取消按钮在属性检查器中几何体共享分类下面.

xxx.scn文件的加载

非常简单,根据文件路径名直接加载就可以了

 // 创建SCNView 用于管理 维度空间 SCNScene
    SCNView *scnViiew = [[SCNView alloc] initWithFrame:self.view.bounds];
    scnViiew.delegate = self;
    [self.view addSubview:_scnView = scnViiew];
    
    // 场景维度 直接使用我们采用Xcode创建的维度
    SCNScene *scene = [SCNScene sceneNamed:@"SceneEditor.scn"];
    scnViiew.scene = _scene = scene;

你可能感兴趣的:([SceneKit专题]6.Scene Editor场景编辑器)