ARKit从入门到精通(6)-ARSession介绍[小鱼ARVR教程]

ARKit从入门到精通(6)-ARSession介绍由小鱼ARVR教程精心整理,并分享给大家。喜欢该资源的小伙伴请下载使用,注册、回复、每日签到、点赞送大量积分,满足您免费下载的愿望

  • ARSession是一个连接底层与AR视图之间的桥梁,其实ARSCNView内部所有的代理方法都是由ARSession来提供的
  • ARSession与ARScnView之间的关系看起来是这样的:
 ARKit从入门到精通(6)-ARSession介绍 ARKit教程
0701.png
  • ARSession获取相机位置数据主要有两种方式
    • 第一种:push。 实时不断的获取相机位置,由ARSession主动告知用户。通过实现ARSession的代理- (void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame来获取
    • 第二种:pull。 用户想要时,主动去获取。ARSession的属性currentFrame来获取
  • API介绍


@interface ARSession : NSObject

/**
 代理
 */
@property (nonatomic, weak) id <ARSessionDelegate> delegate;

/**
指定代理执行的线程(主线程不会有延迟,子线程会有延迟),不指定的话默认主线程
 */
@property (nonatomic, strong, nullable) dispatch_queue_t delegateQueue;

/**
相机当前的位置(是由会话追踪配置计算出来的)
 */
@property (nonatomic, copy, nullable, readonly) ARFrame *currentFrame;

/**
 会话追踪配置
 */
@property (nonatomic, copy, nullable, readonly) ARSessionConfiguration *configuration;

/**
运行会话(这行代码就是开启AR的关键所在)
 */
- (void)runWithConfiguration:(ARSessionConfiguration *)configuration NS_SWIFT_UNAVAILABLE("Use run(_:options:)");

/**
运行会话,只是多了一个参数ARSessionRunOptions:作用就是会话断开重连时的行为。ARSessionRunOptionResetTracking:表示充值追踪  ARSessionRunOptionRemoveExistingAnchors:移除现有锚点
 */
- (void)runWithConfiguration:(ARSessionConfiguration *)configuration options:(ARSessionRunOptions)options NS_SWIFT_NAME(run(_:options:));

/**
暂停会话
 */
- (void)pause;

/**
添加锚点
 */
- (void)addAnchor:(ARAnchor *)anchor NS_SWIFT_NAME(add(anchor:));

/**
移除锚点
 */
- (void)removeAnchor:(ARAnchor *)anchor NS_SWIFT_NAME(remove(anchor:));

@end

//session代理分类两部分,一个是观察者(KVO) 一个是委托者(代理)
#pragma mark - ARSessionObserver


//session KVO观察者
@protocol ARSessionObserver <NSObject>

@optional

/**
 session失败
 */
- (void)session:(ARSession *)session didFailWithError:(NSError *)error;

/**
相机改变追踪状态
 */
- (void)session:(ARSession *)session cameraDidChangeTrackingState:(ARCamera *)camera;

/**
 session意外断开(如果开启ARSession之后,APP退到后台就有可能导致会话断开)
 */
- (void)sessionWasInterrupted:(ARSession *)session;

/**
session会话断开恢复(短时间退到后台再进入APP会自动恢复)
 */
- (void)sessionInterruptionEnded:(ARSession *)session;

@end

#pragma mark - ARSessionDelegate



@protocol ARSessionDelegate <ARSessionObserver>

@optional

/**
 更新相机位置
 */
- (void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame;

/**
添加锚点
 */
- (void)session:(ARSession *)session didAddAnchors:(NSArray<ARAnchor*>*)anchors;

/**
刷新锚点
 */
- (void)session:(ARSession *)session didUpdateAnchors:(NSArray<ARAnchor*>*)anchors;

/**
移除锚点
 */
- (void)session:(ARSession *)session didRemoveAnchors:(NSArray<ARAnchor*>*)anchors;

@end

轻松一刻:

进的时候痛,且有可能出血,还会有许多液体喷出,是什么? XXOO。 错,你想什么呢?是打针。 大大的,圆圆的,软软的,白白的。 Mimi* 错啦,是馒头。
 付费资源
  • 售价 :0.00(积分)
  • 会员价格 : 查看实际享受优惠   提示:月会员0.00积分;季会员0.00积分;年会员0.00积分;终身会员0.00积分;
  • 资源信息 :

    ARKit从入门到精通(6)-ARSession介绍

    下载链接:https://pan.baidu.com/s/17KqNy6C9WLBrQr467xODPw  下载密码:

  • 下载链接失效请联系客服qq2805477110

    为您推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

    联系我们

    联系我们

    在线咨询: QQ交谈

    邮箱: 2805477110@qq.com

    周一至周六,8:00-21:00,节假日休息
    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册