SCNScene : 3D场景
- 概念:
- 通俗说是游戏场景,游戏场景 主要是有几何模型,灯光,相机,和其他的属性组成,SCNScene 包含 3D场景,和场景中的内容.
- 作用:
- 添加各种元素到场景,读取场景文件,将场景写入文件......
- 代码:
- 创建工程
- 导入游戏框架
#import <SceneKit/SceneKit.h> - 创建游戏视图
- 加载游戏文件
SCNView *scnView = [[SCNView alloc] initWithFrame:self.view.bounds];
scnView.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:scnView];
SCNNode: 节点
-
概念:
- 在SCeneKit 中节点是一个抽象概念,节点是看不见摸不着的东西,没有几何形状,但是有位置,及其自身坐标.在场景中创建一个节点后,就可以在这个节点上放游戏元素了.比如任务模型,灯光,摄像机等.节点上可以添加节点
-
和场景的区别:
- 场景 简单说 就是把人物,地图,道具等放到一个空间中,组成一个大的环境,这个大环境就叫场景.
-
节点 : 就是 场景中的一个可以放元素的地方.
4582cd3c-b847-473e-9971-2fbd11fc0206.jpg
-
项目实战:
- 创建工程
- 导入游戏框架
#import <SceneKit/SceneKit.h> - 创建游戏视图
- 加载游戏视图
SCNView *scnView = [[SCNView alloc] initWithFrame:self.view.bounds];
scnView.backgroundColor = [UIColor lightGrayColor];
[self.view addSubview:scnView];
//2. 创建场景
SCNScene *scene = [SCNScene scene];
scnView.scene = scene;
5.创建节点 和 子节点.
// 创建一个 球体
SCNSphere *sphere = [SCNSphere sphereWithRadius:0.5];
sphere.firstMaterial.diffuse.contents = @"earth.jpg";
// 创建节点并把球体绑定 到节点上
SCNNode *earthNode = [SCNNode nodeWithGeometry:sphere];
[scene.rootNode addChildNode:earthNode];
// 创建 字体
SCNText *scntext = [SCNText textWithString:@"Lenovo" extrusionDepth:0.3];
scntext.font = [UIFont systemFontOfSize:0.3];
//将字体绑定到节点 上
SCNNode *textnode = [SCNNode nodeWithGeometry:scntext];
textnode.position = SCNVector3Make(-1, 0, -2);
// 添加earth 节点的子节点上
[earthNode addChildNode:textnode];
6. 效果:

6b19d58e-51cb-465c-abf3-2248fe01ef2d.png
