ARKit从入门到精通(3)-ARKit自定义实现(1)

本文介绍了如何在iOS应用中使用ARKit创建AR会话、AR视图,并实现点击屏幕添加3D虚拟物体的功能。内容包括ARSession的初始化、视图管理,以及使用触摸事件控制3D模型的显示和位置调整。
摘要由CSDN通过智能技术生成

//1.创建会话

_arSession = [[ARSession alloc] init];

//2返回会话

return _arSession;

}

//创建AR视图

  • (ARSCNView *)arSCNView

{

if (_arSCNView != nil) {

return _arSCNView;

}

//1.创建AR视图

_arSCNView = [[ARSCNView alloc] initWithFrame:self.view.bounds];

//2.设置视图会话

_arSCNView.session = self.arSession;

//3.自动刷新灯光(3D游戏用到,此处可忽略)

_arSCNView.automaticallyUpdatesLighting = YES;

return _arSCNView;

}


1.3-开启AR扫描


  • 我们只需要先将AR视图添加到当前UIView中,然后开启AR会话即可开始我们的AR之旅

  • ***这里需要特别注意的是,最好将开启ARSession的代码放入viewDidAppear而不是viewDidLoad中,这样可以避免线程延迟的问题。开启ARSession的代码可不可以放入viewDidLoad中呢?答案是可以的,但是笔者不建议大家那么做***

@implementation ARSCNViewViewController

  • (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view.

}

  • (void)viewDidAppear:(BOOL)animated

{

[super viewDidAppear:animated];

//1.将AR视图添加到当前视图

[self.view addSubview:self.arSCNView];

//2.开启AR会话(此时相机开始工作)

[self.arSession runWithConfiguration:self.arSessionConfiguration];

}


1.4-点击屏幕添加一个3D虚拟物体


  • 默认情况下,节点SCNNode的x/y/z位置是(0,0,0),也就是摄像头所在的位置,每一个ARSession在启动时,摄像头的位置就是3D世界的原点,而且这个原点不再随着摄像头的移动而改变,是第一次就永久固定的

  • 想要让飞机显示在你想要的位置,就需要更加深入的研究ARKit框架,需要了解ARKit的坐标系及A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值