Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы SceneKit ссылка класса SCNSceneSource

Опции
Развертывание Target:

На этой странице
Язык:

SCNSceneSource

Наследование


Соответствует


Оператор импорта


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в iOS 8.0 и позже.

SCNSceneSource объект управляет задачами считывания данных, связанными с загружающимся содержанием сцены от файла (или NSData объект). Можно также использовать источник сцены, чтобы исследовать содержание файла сцены или выборочно загрузить определенные элементы, не загружая всю сцену и все активы, которые это содержит.

SceneKit может считать содержание сцены из файла в поддерживаемом формате, или от NSData объект, содержащий содержание такого файла. Поддерживаемые форматы включают следующее:

Формат

Расширение файла

Поддерживаемый в

Exchange цифрового актива Collada

.dae

OS X v10.8 и позже

Перегонный куб

.abc

OS X v10.10 и позже

SceneKit сжал сцену

.dae или .abc

OS X v10.10 и позже

iOS 8.0 и позже

Архив SceneKit

.scn

OS X v10.10 и позже

iOS 8.0 и позже

При включении файла сцены в формат Collada или Alembic в проекте XCode XCode автоматически преобразовывает файл в сжатый формат сцены SceneKit для использования в созданном приложении. Сжатый файл сохраняет свой оригинал .dae или .abc расширение.

SCNSceneSource класс может также загрузить архивные файлы SceneKit, которые Вы создаете при помощи NSKeyedArchiver класс для сериализации SCNScene возразите и график сцены, который это содержит.

  • Создает источник сцены, читающий график сцены из указанного файла.

    Объявление

    Objective C

    + (instancetype)sceneSourceWithURL:(NSURL *)url options:(NSDictionary *)options

    Параметры

    url

    URL, идентифицирующий расположение файла сцены в формате, распознан SceneKit.

    options

    Словарь, содержащий опции та загрузка сцены влияния. Посмотрите, что Сцена Загружает Опции для доступных ключей и значений. Передача nil использовать опции по умолчанию.

    Возвращаемое значение

    Новый, инициализированный исходный объект сцены, или nil если инициализация не была успешна.

    Обсуждение

    Если у Вас есть содержание файла сцены, но не самого файла (например, если Ваши файлы сцены загрузок приложений от сети), используйте sceneSourceWithData:options: метод вместо этого.

    Оператор импорта

    Objective C

    @import SceneKit;

    Доступность

    Доступный в iOS 8.0 и позже.

  • Создает источник сцены, читающий график сцены, содержавшийся в NSData объект.

    Объявление

    Objective C

    + (instancetype)sceneSourceWithData:(NSData *)data options:(NSDictionary *)options

    Параметры

    data

    Объект данных, содержащий файл сцены в формате, распознан SceneKit.

    options

    Словарь, содержащий опции та загрузка сцены влияния. Посмотрите, что Сцена Загружает Опции для доступных ключей и значений. Передача nil использовать опции по умолчанию.

    Возвращаемое значение

    Новый, инициализированный исходный объект сцены, или nil если инициализация не была успешна.

    Обсуждение

    data параметр этого метода должен содержать те же данные, так же непосредственно считанные из файла сцены (такой как при помощи NSData метод dataWithContentsOfURL:). Используйте этот метод, когда у Вас будет содержание файла сцены, но не самого файла — например, если Ваши файлы сцены загрузок приложений от сети.

    Оператор импорта

    Objective C

    @import SceneKit;

    Доступность

    Доступный в iOS 8.0 и позже.

  • Инициализирует источник сцены для чтения графика сцены от указанного файла.

    Объявление

    Swift

    init?(URL url: NSURL, options options: [NSObject : AnyObject]?)

    Objective C

    - (id)initWithURL:(NSURL *)url options:(NSDictionary *)options

    Параметры

    url

    URL, идентифицирующий сцену.

    options

    Словарь, содержащий опции та загрузка сцены влияния. Посмотрите, что Сцена Загружает Опции для доступных ключей и значений. Передача nil использовать опции по умолчанию.

    Возвращаемое значение

    Инициализированный исходный объект сцены, или nil если инициализация не была успешна.

    Обсуждение

    Если у Вас есть содержание файла сцены, но не самого файла (например, если Ваши файлы сцены загрузок приложений от сети), используйте initWithData:options: метод вместо этого.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Инициализирует источник сцены для чтения графика сцены, содержавшегося в NSData объект.

    Объявление

    Swift

    init?(data data: NSData, options options: [NSObject : AnyObject]?)

    Objective C

    - (id)initWithData:(NSData *)data options:(NSDictionary *)options

    Параметры

    data

    Объект данных, содержащий файл сцены в формате, распознан SceneKit.

    options

    Словарь, содержащий опции та загрузка сцены влияния. Посмотрите, что Сцена Загружает Опции для доступных ключей и значений. Передача nil использовать опции по умолчанию.

    Возвращаемое значение

    Инициализированный исходный объект сцены, или nil если инициализация не была успешна.

    Обсуждение

    data параметр этого метода должен содержать те же данные, так же непосредственно считанные из файла сцены (такой как при помощи NSData метод dataWithContentsOfURL:). Используйте этот метод, когда у Вас будет содержание файла сцены, но не самого файла — например, если Ваши файлы сцены загрузок приложений от сети.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Загружает весь график сцены из источника сцены и вызывает указанный блок для предоставления информации прогресса.

    Объявление

    Swift

    func sceneWithOptions(_ options: [NSObject : AnyObject]?, statusHandler statusHandler: SCNSceneSourceStatusHandler?) -> SCNScene?

    Objective C

    - (SCNScene *)sceneWithOptions:(NSDictionary *)options statusHandler:(SCNSceneSourceStatusHandler)statusHandler

    Параметры

    options

    Словарь, содержащий опции та загрузка сцены влияния. Посмотрите, что Сцена Загружает Опции для доступных ключей и значений. Передача nil использовать опции по умолчанию.

    statusHandler

    SCNSceneSourceStatusHandler блок. SceneKit вызывает этот блок периодически для создания отчетов о прогрессе при загрузке сцены.

    Возвращаемое значение

    SCNScene объект, содержащий весь график сцены из источника сцены, или nil если загрузка не была успешна.

    Обсуждение

    Используйте этот метод, если необходимо контролировать динамику при загрузке сцены из источника сцены. Для более простой загрузки сцены используйте sceneWithOptions:error: метод или SCNScene метод sceneWithURL:options:error:.

    Источник сцены может содержать объекты, которые не являются частью его графика сцены. Для получения этих объектов необходимо загрузить их индивидуально entryWithIdentifier:withClass: или entriesPassingTest: метод. Например, файл сцены, содержащий игровой символ, мог включать несколько анимаций для символьной геометрии (таких как выполнение, переход и простаивание). Поскольку Вы обычно не применяете многократные анимации сразу, файл сцены содержит эти анимации без того, что они были присоединенными к символьной геометрии.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

    См. также

    – sceneWithOptions:error:

  • Инстанцирует сцены из источника сцены с указанными опциями.

    Объявление

    Swift

    func sceneWithOptions(_ options: [NSObject : AnyObject]?, error error: NSErrorPointer) -> SCNScene?

    Objective C

    - (SCNScene *)sceneWithOptions:(NSDictionary *)options error:(NSError **)error

    Параметры

    options

    Словарь, содержащий опции та загрузка сцены влияния. Посмотрите, что Сцена Загружает Опции для доступных ключей и значений. Передача nil использовать опции по умолчанию.

    error

    Указатель на ошибочный объект. При загрузке сбоев, возвратов метода nil и этот указатель ссылается NSError объект, описывающий ошибку. Передача nil если Вы не хотите информации об ошибке.

    Возвращаемое значение

    SCNScene объект, содержащий весь график сцены из источника сцены, или nil если загрузка не была успешна.

    Обсуждение

    Вызов этого метода эквивалентен вызову sceneWithOptions:statusHandler: с блоком, проверяющим error параметр, чтобы видеть, является ли состояние SCNSceneSourceStatusError. Для загрузки сцены, не создавая исходный объект сцены используйте SCNScene метод sceneWithURL:options:error:.

    Источник сцены может содержать объекты, которые не являются частью его графика сцены. Для получения этих объектов необходимо загрузить их индивидуально entryWithIdentifier:withClass: или entriesPassingTest: метод. Например, файл сцены, содержащий игровой символ, мог включать несколько анимаций для символьной геометрии (таких как выполнение, переход и простаивание). Поскольку Вы обычно не применяете многократные анимации сразу, файл сцены содержит эти анимации без того, что они были присоединенными к символьной геометрии.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Возвращает идентификаторы для всех объектов в источнике сцены указанного класса.

    Объявление

    Swift

    func identifiersOfEntriesWithClass(_ entryClass: AnyClass) -> [AnyObject]?

    Objective C

    - (NSArray *)identifiersOfEntriesWithClass:(Class)entryClass

    Параметры

    entryClass

    Класс объектов найти идентификаторы для.

    Возвращаемое значение

    Массив NSString объекты, каждый уникальный идентификатор объекта в источнике сцены.

    Обсуждение

    SceneKit распознает объекты следующих классов в файлах сцены:

    Каждый объект в файле сцены имеет идентификатор, который уникален для его класса. Эти идентификаторы определяются программным обеспечением, создавшим файл сцены — например, они могут быть описательными именами, присвоенными художником, использующим 3D инструменты разработки. Для классов SceneKit с a name свойство (такое как узлы и конфигурации), имя объекта, загруженного из файла сцены, основывается на своем идентификаторе в файле сцены.

    Используйте этот метод для перечисления всех объектов в файле сцены указанного класса, не загружая объекты и их содержание. Например, следующий код считает идентификаторы для всех анимаций сохраненными в источнике сцены:

    Swift

    • let animations = sceneSource.identifiersOfEntriesWithClass(CAAnimation.self)

    Objective C

    • NSArray *animations = [sceneSource identifiersOfEntriesWithClass:[CAAnimation class]];

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Загрузки и возвраты конкретный объект в источнике сцены.

    Объявление

    Swift

    func entryWithIdentifier(_ uid: String, withClass entryClass: AnyClass) -> AnyObject?

    Objective C

    - (id)entryWithIdentifier:(NSString *)uid withClass:(Class)entryClass

    Параметры

    uid

    Уникальный идентификатор объекта в источнике сцены.

    entryClass

    Класс объектов найти идентификаторы для.

    Возвращаемое значение

    Новый объект SceneKit, содержащий требуемую исходную запись сцены, или nil если никакой такой объект не существует в источнике сцены.

    Обсуждение

    SceneKit распознает объекты следующих классов в файлах сцены:

    Каждый объект в файле сцены имеет идентификатор, который уникален для его класса. Эти идентификаторы определяются программным обеспечением, создавшим файл сцены — например, они могут быть описательными именами, присвоенными художником, использующим 3D инструменты разработки. Для классов SceneKit с a name свойство (такое как узлы и конфигурации), имя объекта, загруженного из файла сцены, основывается на своем идентификаторе в файле сцены.

    Если у Вас нет идентификатора для объекта, Вы хотите загрузить, использовать entryWithIdentifier:withClass: метод для нахождения идентификаторов для объектов в файле сцены. Можно также видеть идентификатор для каждого объекта в файле сцены при просмотре его в редакторе сцены XCode.

    Вызов этого метода инстанцирует объекта указанного класса SceneKit и загружает все содержание из файла сцены, соответствующего требуемой записи. Следует иметь в виду, что загрузка одного объекта SceneKit может также загрузить другие объекты и их содержание, такое как световые сигналы, камеры или конфигурации, присоединенные к узлу.

    Например, следующий метод находит идентификатор для геометрии и затем загружает его (и любые анимации или материалы, присоединенные к нему):

    Swift

    • func loadSpaceshipFromSceneSource(sceneSource: SCNSceneSource) -> SCNGeometry? {
    • let identifiers = sceneSource.identifiersOfEntriesWithClass(SCNGeometry.self) as [NSString]
    • for identifier in identifiers {
    • if identifier.containsString("spaceship") {
    • return sceneSource.entryWithIdentifier(identifier, withClass: SCNGeometry.self) as SCNGeometry!
    • }
    • }
    • return nil
    • }

    Objective C

    • - (SCNGeometry *)loadSpaceshipFromSceneSource:(SCNSceneSource *)sceneSource;
    • {
    • NSArray *identifiers = [sceneSource identifiersOfEntriesWithClass:[SCNGeometry class]];
    • for (NSString *identifier in identifiers) {
    • if ([identifier rangeOfString:@"spaceship"].location != NSNotFound)
    • return [sceneSource entryWithIdentifier:identifier withClass:[SCNGeometry class]];
    • }
    • return nil;
    • }

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Загрузки и возвраты все объекты в источнике сцены, проходящие тест в данном блоке.

    Объявление

    Swift

    func entriesPassingTest(_ predicate: (AnyObject!, String!, UnsafeMutablePointer<ObjCBool>) -> Bool) -> [AnyObject]

    Objective C

    - (NSArray *)entriesPassingTest:(BOOL (^)(id entry, NSString *identifier, BOOL *stop))predicate

    Параметры

    predicate

    Блок, который будет применен к каждому объекту в источнике сцены.

    Блок берет три параметра:

    entry

    Объект, который будет протестирован.

    identifier

    Уникальный идентификатор объекта в источнике сцены.

    stop

    Ссылка на булево значение. Набор *stop к YEStrue в блоке для прерывания последующей обработки содержания источника сцены.

    Блок возвращает булево значение, указывающее, прошел ли объект записи тест и должен быть включен в возвращенный массив метода.

    Возвращаемое значение

    Массив SceneKit возражает из источника сцены, которые проходят тест.

    Обсуждение

    SceneKit распознает объекты следующих классов в файлах сцены:

    Каждый объект в файле сцены имеет идентификатор, который уникален для его класса. Эти идентификаторы определяются программным обеспечением, создавшим файл сцены — например, они могут быть описательными именами, присвоенными художником, использующим 3D инструменты разработки. Для классов SceneKit с a name свойство (такое как узлы и конфигурации), имя объекта, загруженного из файла сцены, основывается на своем идентификаторе в файле сцены.

    Используйте этот метод для выборочной загрузки объектов из исходного соответствия сцены критерии, которые Вы указываете. Например, следующий код загружает из файла сцены только узлы, присоединившие геометрию:

    Swift

    • let geometryNodes = sceneSource.entriesPassingTest { entry, identifier, stop in
    • if let node = entry as? SCNNode {
    • return (node.geometry != nil)
    • } else {
    • return false
    • }
    • }

    Objective C

    • NSArray *geometryNodes = [sceneSource entriesPassingTest:^BOOL(id entry, NSString *identifier, BOOL *stop) {
    • if ([entry isKindOfClass:[SCNNode class]]) {
    • SCNNode *node = (SCNNode *)entry;
    • return (node.geometry != nil);
    • } else {
    • return NO;
    • }
    • }];

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • url Свойство

    URL, идентифицирующий файл, из которого создавался источник сцены. (только для чтения)

    Объявление

    Swift

    var url: NSURL? { get }

    Objective C

    @property(readonly) NSURL *url

    Обсуждение

    Значение этого свойства nil если источник сцены не создавался с помощью sceneSourceWithURL:options: или initWithURL:options: метод.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • data Свойство

    Объект данных, из которого источник сцены загружает содержание сцены. (только для чтения)

    Объявление

    Swift

    var data: NSData? { get }

    Objective C

    @property(readonly) NSData *data

    Обсуждение

    Если источник сцены создавался с помощью sceneSourceWithData:options: или initWithData:options: метод, значение этого свойства является данными, из которых создавался источник сцены. Если источник сцены создавался из файла сцены с помощью sceneSourceWithURL:options: или initWithURL:options: метод, значение этого свойства является данными, загруженными из того URL в то время, когда создавался источник сцены.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Метаданные возвратов о сцене.

    Объявление

    Swift

    func propertyForKey(_ key: String) -> AnyObject?

    Objective C

    - (id)propertyForKey:(NSString *)key

    Параметры

    key

    Постоянная идентификация свойства метаданных источника сцены. Посмотрите Исходные Свойства Сцены для доступных ключей и форматов их значений.

    Возвращаемое значение

    Значение для свойства метаданных, или nil если никакое значение не существует для указанного свойства.

    Обсуждение

    Этот метод возвращает информацию о сцене, определяющейся в файле, но непосредственно не ссылающейся сценой.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

Типы данных

  • Подпись для блока, который SceneKit вызывает периодически для создания отчетов о прогрессе при загрузке сцены.

    Объявление

    Swift

    typealias SCNSceneSourceStatusHandler = (Float, SCNSceneSourceStatus, NSError!, UnsafeMutablePointer<ObjCBool>) -> Void

    Objective C

    typedef void (^SCNSceneSourceStatusHandler)(float totalProgress, SCNSceneSourceStatus status, NSError *error, BOOL *stopLoading)

    Обсуждение

    Вы предоставляете блоку эту подпись при использовании sceneWithOptions:statusHandler: метод.

    Блок берет четыре параметра:

    totalProgress

    Число с плавающей точкой между 0.0 и 1.0 указание полного прогресса загрузки сцены. Значение 0.0 указывает, что процесс загрузки только что начался, и значение 1.0 указывает, что завершился процесс.

    status

    Постоянная идентификация одной из отличных фаз процедуры загрузки SceneKit. Посмотрите “SCNSceneSourceStatus” для возможных значений.

    error

    Ошибочное описание объекта любой ошибки, произошедшей во время загрузки сцены, или nil если не встретились ни с какими ошибками.

    stopLoading

    Ссылка на булево значение. Набор *stop к YEStrue в блоке для прерывания последующей обработки содержания источника сцены.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.

  • Опции для создания источников сцены и загрузки сцен они содержат.

    Объявление

    Swift

    let SCNSceneSourceAssetDirectoryURLsKey: String let SCNSceneSourceCreateNormalsIfAbsentKey: String let SCNSceneSourceFlattenSceneKey: String let SCNSceneSourceOverrideAssetURLsKey: String let SCNSceneSourceCheckConsistencyKey: String let SCNSceneSourceStrictConformanceKey: String let SCNSceneSourceUseSafeModeKey: String let SCNSceneSourceConvertUnitsToMetersKey: NSString! let SCNSceneSourceConvertToYUpKey: NSString! let SCNSceneSourceAnimationImportPolicyKey: String

    Objective C

    NSString * const SCNSceneSourceAssetDirectoryURLsKey; NSString * const SCNSceneSourceCreateNormalsIfAbsentKey; NSString * const SCNSceneSourceFlattenSceneKey; NSString * const SCNSceneSourceCheckConsistencyKey; NSString * const SCNSceneSourceOverrideAssetURLsKey; NSString * const SCNSceneSourceStrictConformanceKey; NSString * const SCNSceneSourceUseSafeModeKey; NSString * const SCNSceneSourceConvertUnitsToMetersKey; NSString * const SCNSceneSourceConvertToYUpKey; NSString * const SCNSceneSourceAnimationImportPolicyKey;

    Константы

    • SCNSceneSourceAssetDirectoryURLsKey

      Расположения для использования для разрешения относительного URLs к внешним ресурсам.

      Значение для этого ключа NSArray объект, содержащий один или больше NSURL объекты, каждый из которых ссылается на каталог.

      Файл сцены может сослаться на внешние ресурсы, такие как файлы образа, используемые в качестве текстур в свойствах материала, с помощью относительных путей URL. При загрузке из источника сцены SceneKit сначала пытается разрешить эти ссылки относительно каталога, содержащего файл сцены. Для поиска дополнительных каталогов при загрузке обеспечьте массив URLs для этого ключа, и SceneKit ищет их в порядке.

      При работе с источником сцены, созданным из NSData объект, можно использовать эту опцию обеспечить расположения в файловой системе для загрузки внешних ресурсов.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceCreateNormalsIfAbsentKey

      Опция для того, чтобы автоматически генерировать поверхность normals, если они отсутствуют при загрузке геометрии.

      Значение для этого ключа NSNumber объект, содержащий булево значение. Значение по умолчанию NOfalse.

      Для участия в освещении и штриховке геометрия должна включать поверхностные векторы нормали в свои данные вершины. Некоторые файлы сцены могут не содержать такие данные. Если Вы устанавливаете значение этой опции в YEStrue, SceneKit применяет эвристику для генерации поверхностных нормальных данных для каждой геометрии, которую это загружает из источника сцены, если такие данные отсутствуют.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceFlattenSceneKey

      Опция для того, чтобы автоматически объединить части графика сцены во время загрузки.

      Значение для этого ключа NSNumber объект, содержащий булево значение. Значение по умолчанию NOfalse.

      Если Вы устанавливаете значение этой опции в YEStrue, SceneKit пытается сократить сложность графика сцены, загруженного из источника сцены путем слияния конфигураций и объединения узлов. Используйте эту опцию для более эффективного рендеринга, когда манипулирование графиком сцены не будет необходимо (например, при рендеринге быстрого предварительного просмотра содержания сцены).

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceOverrideAssetURLsKey

      Опция делать попытку загружающихся внешних ресурсов с помощью их URLs, как указано в файле сцены.

      Значение для этого ключа NSNumber объект, содержащий булево значение. Значение по умолчанию NOfalse.

      Файл сцены может сослаться на внешние ресурсы, такие как файлы образа, используемые в качестве текстур в свойствах материала, с помощью относительных путей URL. При загрузке из источника сцены, SceneKit попытками по умолчанию разрешить эти ссылки относительно каталога, содержащего файл сцены. Если Вы устанавливаете значение этой опции в YEStrue, SceneKit ищет внешние ресурсы только в каталогах, Вы указываете использование SCNSceneSourceAssetDirectoryURLsKey опция.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceCheckConsistencyKey

      Опция проверить файлы сцены при загрузке.

      Значение для этого ключа NSNumber объект, содержащий булево значение. Значение по умолчанию NOfalse.

      Если Вы устанавливаете значение этой опции в YEStrue, SceneKit добавляет шаг проверки непротиворечивости прежде, чем инициализировать или загрузить содержание из источника сцены. Эти задержки шага, загружающиеся, чтобы проверить, что формат файла сцены соответствует свою спецификацию. Если проверка перестала работать, SceneKit прекращает загружаться и возвращает ошибку. Используйте эту опцию, если необходимо решить, что файл сцены неповрежден и допустим перед использованием ее.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceStrictConformanceKey

      Опция интерпретировать файлы сцены точно, как указано форматом файла сцены.

      Значение для этого ключа NSNumber объект, содержащий булево значение. Значение по умолчанию NOfalse.

      По умолчанию SceneKit читает дополнительное настоящее метаданных в файле сцены при загрузке сцены так, чтобы ее рендеринг содержания сцены был максимально близок к первоначальному намерению автора файла сцены. Эта информация может включать опции, что художник может выбрать третье лицо использования 3D инструменты разработки или функции SceneKit, не указанного форматом файла сцены. Если Вы устанавливаете значение этой опции в YEStrue, SceneKit игнорирует информацию, которая не является частью спецификации формата файла сцены.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceUseSafeModeKey

      Опция ограничить доступ к файловой системе и доступ к сети для внешних ресурсов, на которые ссылается файл сцены.

      Значение для этого ключа NSNumber объект, содержащий булево значение. Значение по умолчанию NOfalse.

      Файл сцены может сослаться на внешние ресурсы, такие как файлы образа, используемые в качестве текстур в свойствах материала, с помощью относительного или абсолютного URLs, включая URLs, идентифицирующий сетевые ресурсы. Если Вы устанавливаете значение этой опции в YEStrue, SceneKit не загружает внешние ресурсы из сети или из чувствительных каталогов в локальной файловой системе.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceConvertUnitsToMetersKey

      Опция для того, масштабировать ли автоматически содержание сцены.

      Значение для этого ключа NSNumber объект, содержащий значение с плавающей точкой. Значение по умолчанию nil, указание никакого преобразования модуля.

      Моделирование физики SceneKit лучше всего, когда один модуль в координатном пространстве сцены соответствует одному метру в мире физики. При загрузке элементов из файлов сцены обеспечьте значение для этого ключа, указывающего число метров (в координатном пространстве загруженной сцены) для каждого модуля в координатном пространстве сцены элементов, которые будут загружены.

      Например, художник мог бы разработать игровой символ использование масштаба, где один модуль является ногой США. Для загрузки этой модели для использования в основанном на метре координатном пространстве SceneKit укажите значение 0.3048 для этого ключа.

      Эта опция не имеет никакого эффекта для активов, сжатых XCode. Вместо этого используйте сам XCode для преобразования единиц при сжатии активов.

      Доступный в iOS 8.0 через iOS 8.2.

    • SCNSceneSourceConvertToYUpKey

      Опция для того, преобразовать ли активы, загрузилась от файла сцены для использования в системе координат, где ось y подчеркивает.

      Значение для этого ключа NSNumber объект, содержащий булево значение. Значение по умолчанию NOfalse.

      Моделирование физики SceneKit лучше всего, когда ось y координатного пространства сцены соответствует направление мира физики. Некоторые внешние 3D инструменты разработки используют системы координат, где различная ось подчеркивает. Указать YEStrue для этого ключа для автоматического преобразования всех элементов сцены загрузился от файла на основе SCNSceneSourceAssetUpAxisKey значение сохранено в файле.

      Эта опция не имеет никакого эффекта для активов, сжатых XCode. Вместо этого используйте сам XCode для преобразования координатных пространств при сжатии активов.

      Доступный в iOS 8.0 через iOS 8.2.

    • SCNSceneSourceAnimationImportPolicyKey

      Опция для управления воспроизведением анимаций в файле сцены.

      Значение для этого ключа является одной из констант, перечисленных в Политиках Импорта Анимации.

      Значение по умолчанию для этого ключа SCNSceneSourceAnimationImportPolicyPlayRepeatedly. Для приложений, созданных для 10,9 или ранее, значение по умолчанию SCNSceneSourceAnimationImportPolicyPlayUsingSceneTimeBase.

      Доступный в iOS 8.0 и позже.

  • Опции для игры анимаций загрузились от файла сцены, используемого с SCNSceneSourceAnimationImportPolicyKey ключ в словарях опций.

    Объявление

    Swift

    let SCNSceneSourceAnimationImportPolicyPlay: String let SCNSceneSourceAnimationImportPolicyPlayRepeatedly: String let SCNSceneSourceAnimationImportPolicyDoNotPlay: String let SCNSceneSourceAnimationImportPolicyPlayUsingSceneTimeBase: String

    Objective C

    NSString * const SCNSceneSourceAnimationImportPolicyPlay; NSString * const SCNSceneSourceAnimationImportPolicyPlayRepeatedly; NSString * const SCNSceneSourceAnimationImportPolicyDoNotPlay; NSString * const SCNSceneSourceAnimationImportPolicyPlayUsingSceneTimeBase;

    Константы

    • SCNSceneSourceAnimationImportPolicyPlay

      Анимации, загруженные из файла сцены, сразу добавляются к сцене и играются один раз.

      Используя эту политику эквивалентно ручной загрузке каждой анимации, устанавливая repeatCount свойство к 1, и добавление его к надлежащему элементу сцены.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAnimationImportPolicyPlayRepeatedly

      Анимации, загруженные из файла сцены, сразу добавляются к сцене и неоднократно играются.

      Используя эту политику эквивалентно ручной загрузке каждой анимации, устанавливая repeatCount свойство к INFINITY, и добавление его к надлежащему элементу сцены.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAnimationImportPolicyDoNotPlay

      Анимации не загружаются из файла сцены.

      Для игры анимаций, сохраненных в файле сцены, загрузите их вручную использование entryWithIdentifier:withClass: метод.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAnimationImportPolicyPlayUsingSceneTimeBase

      Анимации, загруженные из файла сцены, сразу добавляются к сцене и играются согласно сцене sceneTime свойство.

      Используя эту политику эквивалентно ручной загрузке каждой анимации, устанавливая usesSceneTimeBase свойство к YEStrue, и добавление его к надлежащему элементу сцены. Используйте эту политику, когда Вы захотите непосредственно управлять (или позволить пользователю непосредственно управлять) прогресс анимаций.

      Доступный в iOS 8.0 и позже.

  • Свойства метаданных связались с файлом сцены, используемым propertyForKey: метод.

    Объявление

    Swift

    let SCNSceneSourceAssetContributorsKey: String let SCNSceneSourceAssetCreatedDateKey: String let SCNSceneSourceAssetModifiedDateKey: String let SCNSceneSourceAssetUpAxisKey: String let SCNSceneSourceAssetUnitKey: String

    Objective C

    NSString * const SCNSceneSourceAssetContributorsKey; NSString * const SCNSceneSourceAssetCreatedDateKey; NSString * const SCNSceneSourceAssetModifiedDateKey; NSString * const SCNSceneSourceAssetUpAxisKey; NSString * const SCNSceneSourceAssetUnitKey;

    Константы

    • SCNSceneSourceAssetContributorsKey

      Факторы файла. Соответствующее значение является словарем, заполненным с ключами, задокументированными в Ключевую группу Фактора.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAssetCreatedDateKey

      Дата, когда создавался файл. Соответствующее значение NSDate экземпляр.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAssetModifiedDateKey

      Дата, когда был в последний раз изменен файл. Соответствующее значение NSDate экземпляр.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAssetUpAxisKey

      -Ось для сцены. Например, если сцена ориентирована да, соответствующее значение является строкой "0.0 1.0 0.0".

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAssetUnitKey

      Модуль используется в файле. Соответствующее значение является словарем, заполненным с ключами, задокументированными в Ключевую группу Словаря Модуля.

      Доступный в iOS 8.0 и позже.

  • Метаданные, идентифицирующие пользователя и инструмент разработки, создавший файл сцены, используемый с SCNSceneSourceAssetContributorsKey ключ.

    Объявление

    Swift

    let SCNSceneSourceAssetAuthoringToolKey: String let SCNSceneSourceAssetAuthorKey: String

    Objective C

    NSString * const SCNSceneSourceAssetAuthoringToolKey; NSString * const SCNSceneSourceAssetAuthorKey;

    Константы

    • SCNSceneSourceAssetAuthoringToolKey

      Инструмент разработки, создавший файл сцены.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAssetAuthorKey

      Автор файла сцены.

      Доступный в iOS 8.0 и позже.

    Обсуждение

    Инструменты разработки, генерирующие файлы сцены, могут включать метаданные, идентифицирующие имя и версию программного обеспечения для авторинга и имя пользователя, создавшего файл. Значения для этих ключей NSString объекты.

  • Метаданные, описывающие единицу измерения, используемую в файле сцены, используемом с SCNSceneSourceAssetUnitKey ключ.

    Объявление

    Swift

    let SCNSceneSourceAssetUnitNameKey: String let SCNSceneSourceAssetUnitMeterKey: String

    Objective C

    NSString * const SCNSceneSourceAssetUnitNameKey; NSString * const SCNSceneSourceAssetUnitMeterKey;

    Константы

    • SCNSceneSourceAssetUnitNameKey

      Имя модуля используется в файле сцены.

      Значение для этого ключа NSString объект.

      Доступный в iOS 8.0 и позже.

    • SCNSceneSourceAssetUnitMeterKey

      Коэффициент преобразования от модуля, привыкшего в файле сцены к метру SI.

      Значение для этого ключа NSNumber возразите, чье значение с плавающей точкой является числом метров SI для каждого модуля в файле сцены.

      Доступный в iOS 8.0 и позже.

    Обсуждение

    По умолчанию единицы измерения для SceneKit полностью произвольны. Данные вершины геометрии определяются в любом модуле, системное и координатное пространство удобно для своего автора. Узлы в сцене, каждый определяет их собственное пространство, как удобно для организации содержания сцены, и камера, просматривающая сцену и средство рендеринга, рисующее его, определяют корреспонденцию между миром сцены и пикселями на дисплее.

    Тем не менее, для авторов 3D активов может быть полезно установить масштаб модуля для искусства, которое они создают. Файл сцены может идентифицировать намеченную единицу измерения для пространства мира, в котором определяется их содержание. Если Вы загружаете активы из многократных источников и комбинируете их в единственной сцене, можно использовать модули, указанные в каждом источнике, чтобы определить, как масштабировать каждый актив в объединенной сцене. При работе с модулями от файла сцены, произвольным модулем расстояния, что мировое пространство SceneKit соответствует метру, определенному в Международной системе единиц (SI).

    Например, один файл сцены мог бы содержать геометрию, представляющую механизм, определяя не модуль, но разработанный в масштабе, где один модуль равняется одному метру. Другой файл сцены мог бы содержать геометрию, представляющую лицо с определяемым модулем США — словарь модуля для файла сцены содержит строку inch для SCNSceneSourceAssetUnitNameKey ключ и число 0.0254 для SCNSceneSourceAssetUnitMeterKey ключ. Для размещения этих объектов вместе в ту же сцену в надлежащих размерах установите scale свойство узла, содержащего геометрию лица к 0.0254.

  • Ключи, идентифицирующие ошибки, возвратились при создании источников сцены или загрузке сцен, в которых они содержат, используемый в userInfo словарь NSError объекты.

    Объявление

    Swift

    let SCNDetailedErrorsKey: String

    Objective C

    NSString * const SCNDetailedErrorsKey;

    Константы

    • SCNDetailedErrorsKey

      Подробная информация об ошибке от процесса загрузки файла сцены SceneKit.

      Если SceneKit сообщает об ошибке при создании или загрузке из источника сцены, userInfo словарь возвращенного NSError объект может содержать этот ключ, значение которого является массивом словарей (каждый содержащий один или больше ключей, перечисленных в Ошибочных Ключах Непротиворечивости Файла Сцены) предоставление подробной информации о расположении ошибки в файле сцены.

      Если Вы указываете YEStrue для SCNSceneSourceCheckConsistencyKey опция при создании или загрузке из источника сцены, SceneKit проверяет файл сцены по спецификации для ее формата файла. Проверка файла сцены может привести к дополнительным сообщениям об ошибке для нарушений спецификации формата файла, не препятствующих тому, чтобы SceneKit загрузил файл.

      Доступный в iOS 8.0 и позже.

  • Ключи, идентифицирующие ошибки, найдены во время проверки непротиворечивости формата файла сцены.

    Объявление

    Swift

    let SCNConsistencyElementIDErrorKey: String let SCNConsistencyElementTypeErrorKey: String let SCNConsistencyLineNumberErrorKey: String

    Objective C

    NSString * const SCNConsistencyElementIDErrorKey; NSString * const SCNConsistencyElementTypeErrorKey; NSString * const SCNConsistencyLineNumberErrorKey;

    Константы

    • SCNConsistencyElementIDErrorKey

      Идентификатор элемента файла сцены, где произошла ошибка.

      Значение для этого ключа является a NSString объект, содержащий идентификатор.

      Если элемент, в котором произошла ошибка, не имеет идентификатора, значение для этого ключа является идентификатором самого близкого родительского элемента с идентификатором.

      Доступный в iOS 8.0 и позже.

    • SCNConsistencyElementTypeErrorKey

      Тип элемента файла сцены, в котором произошла ошибка.

      Значение для этого ключа является a NSString объект, называющий тип элемента файла сцены.

      Доступный в iOS 8.0 и позже.

    • SCNConsistencyLineNumberErrorKey

      Номер строки в файле сцены, в котором произошла ошибка.

      Значение для этого ключа NSNumber объект.

      Доступный в iOS 8.0 и позже.

    Обсуждение

    Если Вы указываете YEStrue для SCNSceneSourceCheckConsistencyKey при создании или загрузке из источника сцены, SceneKit проверяет файл сцены по спецификации для ее формата файла. SceneKit сообщает о любых проблемах проверки формата, происходящих как массив словарей, идентифицированных в SCNDetailedErrorsKey ключ userInfo словарь NSError объект. Каждый элемент в массиве является словарем, содержащим один или больше упомянутых выше ключей.

    Эти ключи и их значения предоставляют подробную информацию о расположении ошибки в файле сцены. Другие свойства возвращенного NSError объект описывает природу ошибки проверки.

  • Коды ошибки, идентифицирующие ошибки, найденные во время проверки непротиворечивости формата файла сцены.

    Объявление

    Swift

    var SCNConsistencyInvalidURIError: Int { get } var SCNConsistencyInvalidCountError: Int { get } var SCNConsistencyInvalidArgumentError: Int { get } var SCNConsistencyMissingElementError: Int { get } var SCNConsistencyMissingAttributeError: Int { get } var SCNConsistencyXMLSchemaValidationError: Int { get }

    Objective C

    enum { SCNConsistencyInvalidURIError = 1000, SCNConsistencyInvalidCountError, SCNConsistencyInvalidArgumentError, SCNConsistencyMissingElementError, SCNConsistencyMissingAttributeError, SCNConsistencyXMLSchemaValidationError, };

    Константы

    • SCNConsistencyInvalidURIError

      Файл сцены содержит недопустимый URI (или URL).

      Доступный в iOS 8.0 и позже.

    • SCNConsistencyInvalidCountError

      Файл сцены содержит неверный номер сцен.

      Доступный в iOS 8.0 и позже.

    • SCNConsistencyInvalidArgumentError

      Элемент в файле сцены содержит недопустимую опцию для одного из ее атрибутов.

      Доступный в iOS 8.0 и позже.

    • SCNConsistencyMissingElementError

      Требуемый элемент в файле сцены отсутствует.

      Доступный в iOS 8.0 и позже.

    • SCNConsistencyMissingAttributeError

      Элемент в файле сцены пропускает требуемый атрибут.

      Доступный в iOS 8.0 и позже.

    • SCNConsistencyXMLSchemaValidationError

      Формат файла сцены не соответствует свое определение схемы XML.

      Доступный в iOS 8.0 и позже.

    Обсуждение

    Если Вы указываете YEStrue для SCNSceneSourceCheckConsistencyKey при создании или загрузке из источника сцены, SceneKit проверяет файл сцены по спецификации для ее формата файла. SceneKit сообщает о любых проблемах проверки формата в NSError объект, чей code свойство является одним из этих значений.

    Для получения дополнительной информации о расположении и природе любых ошибок проверки формата, посмотрите SCNDetailedErrorsKey введите ошибку userInfo словарь и ключи перечислены в Ошибочных Ключах Непротиворечивости Файла Сцены.

  • Константы, идентифицирующие фазы процесса загрузки сцены SceneKit, используемого в a SCNSceneSourceStatusHandler блок.

    Объявление

    Swift

    enum SCNSceneSourceStatus : Int { case Error case Parsing case Validating case Processing case Complete }

    Objective C

    typedef enum : NSInteger { SCNSceneSourceStatusError = -1, SCNSceneSourceStatusParsing = 4, SCNSceneSourceStatusValidating = 8, SCNSceneSourceStatusProcessing = 12, SCNSceneSourceStatusComplete = 16 } SCNSceneSourceStatus;

    Константы

    • Error

      SCNSceneSourceStatusError

      Когда SceneKit попытался загрузить сцену, ошибка произошла.

      Если status параметр a SCNSceneSourceStatusHandler блок имеет это значение, посмотрите блок error параметр для получения информации о природе и расположении ошибки. Когда SceneKit встречается с ошибкой во время загрузки сцены, он вызывает блок обработчика с этим состоянием, затем после того, как блок завершается, sceneWithOptions:statusHandler: возвраты метода nil.

      Доступный в iOS 8.0 и позже.

    • Parsing

      SCNSceneSourceStatusParsing

      SceneKit начал десериализовывать исходный файл.

      Доступный в iOS 8.0 и позже.

    • Validating

      SCNSceneSourceStatusValidating

      SceneKit начал проверять формат файла сцены.

      Если Вы указываете YEStrue для SCNSceneSourceCheckConsistencyKey при создании или загрузке из источника сцены, SceneKit проверяет файл сцены по спецификации для ее формата файла и сообщает о любых ошибках непротиворечивости формата.

      Доступный в iOS 8.0 и позже.

    • Processing

      SCNSceneSourceStatusProcessing

      SceneKit начал генерировать объекты диаграмм сцены от содержания файла сцены.

      Доступный в iOS 8.0 и позже.

    • Complete

      SCNSceneSourceStatusComplete

      SceneKit успешно закончил загружать содержание файла сцены.

      Доступный в iOS 8.0 и позже.

    Обсуждение

    Используйте информацию, предоставленную этими константами для описания процесса загрузки сцены в пользовательском интерфейсе приложения. Поскольку это перечисление оставляет комнату для более подробных отчетов о ходе работ, необходимо выдержать сравнение status параметр a SCNSceneSourceStatusHandler блок против этих значений для упорядочивания, не для равенства, как в следующем обработчике в качестве примера:

    Swift

    • let myHandler: SCNSceneSourceStatusHandler = { totalProgress, status, error, stop in
    • if status.toRaw() >= SCNSceneSourceStatus.Processing.toRaw() &&
    • status.toRaw() < SCNSceneSourceStatus.Complete.toRaw() {
    • myProgressLabel.stringValue = "Processing"
    • }
    • }

    Objective C

    • SCNSceneSourceStatusHandler myHandler =
    • ^(float totalProgress, SCNSceneSourceStatus status, NSError *error, BOOL *stop) {
    • if (status >= SCNSceneSourceStatusProcessing && status < SCNSceneSourceStatusComplete)
    • myProgressLabel.stringValue = @"Processing";
    • };

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в iOS 8.0 и позже.