ARSCNView的头文件
ARSCNView是什么
将ARSession渲染集成到SceneKit的视图
该视图可以绘制摄像机背景,提供和更新一个摄像头,管理锚点的节点,并更新照明。
ARSCNView的属性
//代理属性不做解释
@property (nonatomic, weak, nullable) id<ARSCNViewDelegate> 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<ARHitTestResult *> *)hitTest:(CGPoint)point types:(ARHitTestResultType)types;
ARSCNViewDelegate
/**
实现这个为给定的锚点提供一个自定义节点。
@discussion 此节点将自动添加到场景图。如果未实现此方法,将自动创建一个节点。如果返回nil,锚点将被忽略。
@param renderer渲染场景的渲染器。
@param anchor添加的锚点。
@return将映射到锚点或nil的节点。
*/
- (nullable SCNNode *)renderer:(id <SCNSceneRenderer>)renderer nodeForAnchor:(ARAnchor *)anchor;
/**
当新节点已映射到给定的锚点时调用。
@param renderer 渲染场景的渲染器。
@param node 映射到锚点的节点。
@param anchor 添加的锚点。
*/
- (void)renderer:(id <SCNSceneRenderer>)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;
/**
当节点将使用给定锚点的数据进行更新时调用。
@param renderer 渲染场景的渲染器。
@param node 将被更新的节点。
@param anchor 已更新的锚点。
*/
- (void)renderer:(id <SCNSceneRenderer>)renderer willUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;
/**
当一个节点已经使用给定锚点的数据进行更新时调用。
@param renderer渲染场景的渲染器。
@param node更新的节点。
@param anchor已更新的锚点。
*/
- (void)renderer:(id <SCNSceneRenderer>)renderer didUpdateNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor;
/**
当映射节点已从给定锚点的场景图中删除时调用。
@param renderer渲染场景的渲染器。
@param node已删除的节点。
@param anchor已删除的锚点。
*/
- (void)renderer:(id <SCNSceneRenderer>)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
网友评论