- 废话不多说,先看效果
- 由于是晚上,笔者选择的是一个台灯
其实是会一直围着你转圈的,只不过笔者不好意思暴露家里的场景,所以请读者朋友们见谅~
- 由于是晚上,笔者选择的是一个台灯

1101.gif
1.1-ARKit物体围绕相机旋转流程介绍
-
1.点击屏幕添加物体,已经在第三小节
ARKit从入门到精通(3)-ARKit自定义实现
中介绍 -
2.实现物体的围绕相机旋转(这里主要会用到SceneKit框架中内容)
- 注意:绕相机旋转的关键点在于:在相机的位置创建一个空节点,然后将台灯添加到这个空节点,最后让这个空节点自身旋转,就可以实现台灯围绕相机旋转
- 1.为什么要在相机的位置创建一个空节点呢?因为你不可能让相机也旋转
- 2.为什么不直接让台灯旋转呢? 这样的话只能实现台灯的自转,而不能实现公转
- 注意:绕相机旋转的关键点在于:在相机的位置创建一个空节点,然后将台灯添加到这个空节点,最后让这个空节点自身旋转,就可以实现台灯围绕相机旋转
- 核心代码介绍
#pragma mark- 点击屏幕添加飞机
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
[self.planeNode removeFromParentNode];
//1.使用场景加载scn文件(scn格式文件是一个基于3D建模的文件,使用3DMax软件可以创建,这里系统有一个默认的3D飞机)--------在右侧我添加了许多3D模型,只需要替换文件名即可
SCNScene *scene = [SCNScene sceneNamed:@"Models.scnassets/lamp/lamp.scn"];
//2.获取台灯节点(一个场景会有多个节点,此处我们只写,飞机节点则默认是场景子节点的第一个)
//所有的场景有且只有一个根节点,其他所有节点都是根节点的子节点
SCNNode *shipNode = scene.rootNode.childNodes[0<