SCNScene类

SCNScene 为游戏中的场景,简单的说,就是放的游戏元素(地图,灯光,人物的游戏元素)的地方

指定节点层次结构的根节点

@property(nonatomic,readonly)SCNNode *rootNode;

注意,我们只有一个跟节点,而一些文件格式可能有许多节点在他们那层的根节点上.因此,导入文件的根节点将是SCNScene根节点的子节点

指定接收器的物理世界

@property(nonatomic,readonly)SCNPhysicsWorld *physicsWorld;

每个场景自动创建一个物理世界对象,以模拟场景中节点上的物理现象.你可以使用此属性来访问场景的全局物理属性,例如重力.要向特定节点添加物理现象,请看physicsBody

检索场景属性

- (nullableid)attributeForKey:(NSString *)key;

可用的keys罗列在"场景属性"组中
指定读取的属性是一个NSString对象

设置场景属性

- (void)setAttribute:(nullableid)attribute forKey:(NSString *)key;

可用的keys罗列在"场景属性"组中
attribute:指定要写入的属性值是一个对象
key:指定要写入的属性是一个NSString对象

背景

@property(nonatomic,readonly)SCNMaterialProperty *background;

指定接收器的背景
背景在场景渲染之前出现
通过设置SCNMaterialProperty.h 中描述的多维数据集映射,可以将背景渲染成天空盒

灯光坏境

@property(nonatomic,readonly)SCNMaterialProperty *lightingEnvironment;

基于图像照明的指定接收器(IBL)
环境应该是SCNMaterialProperty.h中所述的立方体映射

加载

创建并返回与指定文件名关联的场景

+ (nullableinstancetype)sceneNamed:(NSString *)name;

name:文件的名称.该方法在应用程序的主包中查找具有指定名称的文件
此方法初始化时没有选项,并且不检查错误.生成的对象不会缓存

用法:SCNScene *scene = [SCNScene sceneNamed:@"这里一般传入的是模型场景文件的路径"];

创建并返回与指定文件名关联的场景

+ (nullableinstancetype)sceneNamed:(NSString *)name inDirectory:(nullableNSString *)directory options:(nullableNSDictionary *)options;

name:文件的名称.该方法在应用程序的主包中查找具有指定名称的文件
directory:要搜索的bundle子目录的名称
options:(选择/设置)选项字典.相关的密钥记录在SCNSceneSource类中
返回:此方法初始化时没有选项,并且不检查错误.生成的对象不会缓存

在指定的URL上创建和返回一个场景

+ (nullableinstancetype)sceneWithURL:(NSURL *)url options:(nullableNSDictionary *)options error:(NSError **)error;

url:这个URL是一个3D文件
options:选项字典.相关的密钥记录在SCNSceneSource类中
error:通过引用传递的NSError对象在返回nil时获取有关错误的更多信息
返回:这里的方法是为了方便.它等效于使用指定的url和options初始化一个SCNSceneSource,并向它的场景请求相同的选项

通过指定的URL写这个场景

 - (BOOL)writeToURL:(NSURL *)url options:(nullableNSDictionary *)options delegate:(nullableid)delegate progressHandler:(nullableSCNSceneExportProgressHandler)progressHandler;

url:将场景写入目标URL.
options: 一个字典选项.有效的key在"场景书写选项"部分中有所描述
delegate: 一个可选的代理,用于管理外部引用.例如图片
progressHandler:(进度处理程序) 一个可选的块来处理操作的进度
返回 如果操作成功就返回YES,否则就返回NO.错误检查可以通过"progressHandler"的"error"参数来完成.

雾/迷雾/浓雾

开始雾距离

@property(nonatomic)CGFloat fogStartDistance;

开始指定接收器的雾距离.动画.默认为0

结束雾距离

@property(nonatomic)CGFloat fogEndDistance;

结束指定接收器的雾距离.动画.默认为0

雾密度指数

@property(nonatomic)CGFloat fogDensityExponent;

指定接收器的雾密度指数.动画.默认为1
返回:控制开始和结束雾距之间的衰减.0表示恒定雾,1表示线性雾,2表示二次雾,但任何正值都将起作用)

雾颜色

@property(nonatomic,retain)id fogColor;

指定接收器的雾颜色[NSColor / CGColorRef].动画.默认为白色

暂停

@property(nonatomic,getter=isPaused)BOOL paused;

控制场景是否已暂停.默认为NO
暂停场景将暂停动画,动作,粒子和物理

委托方法SCNSceneExportDelegate

@optional

在代理上调用写入引用的图像并返回目标网址

- (nullableNSURL *)writeImage:(UIImage *)image withSceneDocumentURL:(NSURL *)documentURL originalImageURL:(nullableNSURL *)originalImage;

image:这个图片是白色
documentURL:(文件URL) 这个URL是场景现在导出的
originalImageURL:(原始图片URL) 图像的原始网址.如果图像之前未从网址加载,则可能为nil
返回:委托必须返回导出的图像网址,如果未导出任何图像,则返回nil。 如果返回的值为nil,则图像将以默认格式导出到默认目标。

你可能感兴趣的:(SCNScene类)