Skip to main content
 首页 » 资源教程 » ARKit教程

ARKit从入门到精通(9)-ARKit让飞机跟着镜头飞起来

2017年06月16日 11:30:282020坤小专栏
  • 1.1-ARKit物体跟随相机移动流程介绍

  • 1.2-完整代码

  • 1.3-代码下载地址

    ARKit从入门到精通(9)-ARKit让飞机跟着镜头飞起来 ARKit教程 第1张

  • 废话不多说,先看效果

ARKit从入门到精通(9)-ARKit让飞机跟着镜头飞起来 ARKit教程 第2张

1001.gif


1.1-ARKit物体跟随相机移动流程介绍



  • 1.点击屏幕添加物体,已经在第三小节ARKit从入门到精通(3)-ARKit自定义实现中介绍

  • 2.监听ARSession的代理

    • 相机的移动是由AR会话来监听的

  • 3.在ARSession的相机移动代理中获取相机的当前位置,修改物体的位置与相机位置一致,即可实现物体跟随相机移动而移动

  • 核心代码介绍

#pragma mark -ARSessionDelegate//会话位置更新(监听相机的移动),此代理方法会调用非常频繁,只要相机移动就会调用,如果相机移动过快,会有一定的误差,具体的需要强大的算法去优化,笔者这里就不深入了- (void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame{    NSLog(@"相机移动");    if (self.arType != ARTypeMove) {        return;   }    //移动飞机   if (self.planeNode) {        //捕捉相机的位置,让节点随着相机移动而移动       //根据官方文档记录,相机的位置参数在4X4矩阵的第三列       self.planeNode.position =SCNVector3Make(frame.camera.transform.columns[3].x,frame.camera.transform.columns[3].y,frame.camera.transform.columns[3].z);   }}





1.2-完整代码



#import "ARSCNViewViewController.h"//3D游戏框架#import <SceneKit/SceneKit.h>//ARKit框架#import <ARKit/ARKit.h>@interface ARSCNViewViewController ()<ARSCNViewDelegate,ARSessionDelegate>//AR视图:展示3D界面@property(nonatomic,strong)ARSCNView *arSCNView;//AR会话,负责管理相机追踪配置及3D相机坐标@property(nonatomic,strong)ARSession *arSession;//会话追踪配置:负责追踪相机的运动@property(nonatomic,strong)ARSessionConfiguration *arSessionConfiguration;//飞机3D模型(本小节加载多个模型)@property(nonatomic,strong)SCNNode *planeNode;@end@implementation ARSCNViewViewController- (void)viewDidLoad {   [super viewDidLoad];    // Do any additional setup after loading the view.}- (void)back:(UIButton *)btn{   [self dismissViewControllerAnimated:YES completion:nil];}- (vo

推荐


ARKit从入门到精通系统教程目录 



评论列表暂无评论
发表评论