iOS开发——ARKit之ARSCNView

ARSCNView的头文件

ARSCNView是什么

将ARSession渲染集成到SceneKit的视图
该视图可以绘制摄像机背景,提供和更新一个摄像头,管理锚点的节点,并更新照明。

ARSCNView的属性

//代理属性不做解释
@property (nonatomic, weak, nullable) id delegate;
//ARSession:用于更新AR场景的会话。
@property (nonatomic, strong) ARSession *session;

 //指定视图的场景。
@property(nonatomic, strong) SCNScene *scene;

//是否根绝场景更新灯光(自适应灯光),默认为YES
@property(nonatomic) BOOL automaticallyUpdatesLighting;

/**
 在场景层次结构中寻找与所提供的节点相关联的锚点。
 @param node 视图场景中的一个节点.
 */
- (nullable ARAnchor *)anchorForNode:(SCNNode *)node;

/**
将已映射到特定锚点的节点返回。
 @param anchor 具有现有节点映射的锚。
 */
- (nullable SCNNode *)nodeForAnchor:(ARAnchor *)anchor;

/**
 搜索当前帧中对应于视图中的某个点的对象。
 
 @discussion 视图坐标空间中的一个二维点可以指向三维坐标空间中的任意点。测试是在这条线段上发现世界上的物体的过程。
 @param point 视图的坐标系统中的一个点,手机屏幕上的一个点
 @param types 搜索结果的类型。
 @return 从最近到最远处的所有测试结果的数组。
 */
- (NSArray *)hitTest:(CGPoint)point types:(ARHitTestResultType)types;

ARSCNViewDelegate

/**
 实现这个为给定的锚点提供一个自定义节点。
  @discussion 此节点将自动添加到场景图。如果未实现此方法,将自动创建一个节点。如果返回nil,锚点将被忽略。
  @param renderer渲染场景的渲染器。
  @param anchor添加的锚点。
  @return将映射到锚点或nil的节点。
 */
- (nullable SCNNode *)renderer:(id )renderer nodeForAnchor:(ARAnchor *)anchor;

/**
 当新节点已映射到给定的锚点时调用。
  @param renderer 渲染场景的渲染器。
  @param node 映射到锚点的节点。
  @param anchor 添加的锚点。
 */
- (void)renderer:(id )renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 当节点将使用给定锚点的数据进行更新时调用。
  @param renderer 渲染场景的渲染器。
  @param node 将被更新的节点。
  @param anchor 已更新的锚点。
 */
- (void)renderer:(id )renderer willUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 当一个节点已经使用给定锚点的数据进行更新时调用。
  @param renderer渲染场景的渲染器。
  @param node更新的节点。
  @param anchor已更新的锚点。
 */
- (void)renderer:(id )renderer didUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

/**
 当映射节点已从给定锚点的场景图中删除时调用。
  @param renderer渲染场景的渲染器。
  @param node已删除的节点。
  @param anchor已删除的锚点。
 */
- (void)renderer:(id )renderer didRemoveNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;

下面的不太了解,有知道的希望您能给我留言,谢谢。。。

/**
 Extended debug options for an ARSCNView
 */
struct ARSCNDebugOptions {} API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos);

/** Show the world origin in the scene. */
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)
FOUNDATION_EXTERN const SCNDebugOptions ARSCNDebugOptionShowWorldOrigin NS_SWIFT_NAME(ARSCNDebugOptions.showWorldOrigin);

/** Show detected 3D feature points in the world. */
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(macos, watchos, tvos)
FOUNDATION_EXTERN const SCNDebugOptions ARSCNDebugOptionShowFeaturePoints NS_SWIFT_NAME(ARSCNDebugOptions.showFeaturePoints);

NS_ASSUME_NONNULL_END

你可能感兴趣的:(iOS开发——ARKit之ARSCNView)