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

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

Разработчик

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

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

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

SCNScene

SCNScene объект представляет трехмерную сцену. Сцена содержит иерархию узлов с присоединенными конфигурациями, световыми сигналами и камерами — называемый графиком сцены. Для рендеринга сцены для дисплея посмотрите SCNView, SCNLayer (Только OS X), или SCNRenderer класс, и SCNSceneRenderer протокол, определяющий свойства и методы, поделившиеся теми классами. SCNScene класс также обеспечивает интерфейс для чтения и записи файлов сцены.

Получение или создание сцены

Как правило, Вы получаете сцену из файла, создаваемого с помощью внешних 3D инструментов разработки. При включении файлов сцены в каталог ресурсов пакета приложения XCode сжимает их для оптимального SceneKit, загружающего производительность. Для загрузки файла сцены используйте sceneNamed:, sceneNamed:inDirectory:options:, или sceneWithURL:options:error: метод или экземпляр SCNSceneSource класс.

Также можно создать пустую сцену с scene метод и заполняет его с содержанием путем создания иерархии узлов и их содержания и добавления их как дочерних элементов сцены rootNode объект

Сохранение сцены

SceneKit обеспечивает два способа сохранить сцену к файлу:

  • Объекты SceneKit поддерживают NSSecureCoding протокол. Используйте NSKeyedArchiver класс для сериализации сцены и всего ее содержания, и NSKeyedUnarchiver класс для загрузки заархивированной сцены. Заархивированные сцены поддерживают все функции SceneKit, и чтение заархивированных сцен быстрее, чем импорт других форматов файлов сцены.

  • В OS X только, writeToURL:options:delegate:progressHandler: метод экспортирует файл в формате Digital Asset Exchange (DAE) Collada для использования другими приложениями. Экспортируемые файлы DAE не содержат элементы сцены, определенные для SceneKit, такие как организации физики и поля, ограничения и системы частиц.

Работа с анимациями в сцене

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

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


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


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в OS X v10.8 и позже.
  • Создает и возвращает пустую сцену.

    Объявление

    Objective C

    + (instancetype)scene

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

    Новый, пустой объект сцены.

    Обсуждение

    Пустая сцена содержит только корень SCNNode объект без содержания. Для заполнения сцены добавьте дочерние элементы к корневому узлу.

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

    Objective C

    @import SceneKit;

    Доступность

    Доступный в OS X v10.8 и позже.

    См. также

    rootNode

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

    Объявление

    Swift

    convenience init?(named name: String)

    Objective C

    + (instancetype)sceneNamed:(NSString *)name

    Параметры

    name

    Имя файла сцены в каталоге ресурсов комплекта приложений.

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

    Новый объект сцены, или nil если не могла бы быть загружена никакая сцена.

    Обсуждение

    Этот метод обеспечивает удобный способ загрузить полную сцену из файла в основном пакете приложения. Вызов этого метода эквивалентен использованию NSBundle класс для определения местоположения файла сцены и передачи получающегося URL к sceneWithURL:options:error: метод, не указывая опций и никакой обработки ошибок.

    Для более подробных опций или загрузить только часть графика сцены файла, используйте SCNSceneSource класс.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

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

    Объявление

    Swift

    convenience init?(named name: String, inDirectory directory: String?, options options: [NSObject : AnyObject]?)

    Objective C

    + (instancetype)sceneNamed:(NSString *)name inDirectory:(NSString *)directory options:(NSDictionary *)options

    Параметры

    name

    Имя файла сцены в комплекте приложений.

    directory

    Путь к подкаталогу каталога ресурсов пакета, содержащего файл сцены.

    options

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

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

    Новый объект сцены, или nil если не могла бы быть загружена никакая сцена.

    Обсуждение

    Этот метод обеспечивает удобный способ загрузить полную сцену из файла в основном пакете приложения. Вызов этого метода эквивалентен использованию NSBundle класс для определения местоположения файла сцены и передачи получающегося URL к sceneWithURL:options:error: метод.

    Для более подробных опций или загрузить только часть графика сцены файла, используйте SCNSceneSource класс.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Загружает сцену из указанного URL.

    Объявление

    Swift

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

    Objective C

    + (instancetype)sceneWithURL:(NSURL *)url options:(NSDictionary *)options error:(NSError **)error

    Параметры

    url

    URL к файлу сцены для загрузки.

    options

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

    error

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

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

    Новый объект сцены, или nil если не могла бы быть загружена никакая сцена.

    Обсуждение

    Этот метод обеспечивает удобный способ загрузить полную сцену из файла в произвольном URL. Для более подробных опций или загрузить только часть графика сцены файла, используйте SCNSceneSource класс.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

    См. также

    + sceneNamed:

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

    Объявление

    Swift

    var paused: Bool

    Objective C

    @property(nonatomic, getter=isPaused) BOOL paused

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • rootNode rootNode Свойство

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

    Объявление

    Swift

    var rootNode: SCNNode { get }

    Objective C

    @property(nonatomic, readonly) SCNNode *rootNode

    Обсуждение

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • фон фон Свойство

    Фон, который будет представлен перед остальной частью сцены. (только для чтения)

    Объявление

    Swift

    var background: SCNMaterialProperty { get }

    Objective C

    @property(nonatomic, readonly) SCNMaterialProperty *background

    Обсуждение

    Если материальная собственность contents объект nil, SceneKit не рисует фона прежде, чем нарисовать остальную часть сцены. (Если сцена представлена в SCNView экземпляр, цвет фона представления видим позади содержания сцены.)

    Если Вы указываете текстуру карты куба как содержание материальной собственности (использующий массив шести изображений, столь же указанных в Ссылке класса SCNMaterialProperty), SceneKit представляет фон как skybox.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

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

    Объявление

    Swift

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

    Objective C

    - (id)attributeForKey:(NSString *)key

    Параметры

    key

    Одна из констант описала в Атрибутах Сцены, который идентифицирует атрибут, который будет считан.

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • Устанавливает атрибут сцены для указанного ключа.

    Объявление

    Swift

    func setAttribute(_ attribute: AnyObject, forKey key: String)

    Objective C

    - (void)setAttribute:(id)attribute forKey:(NSString *)key

    Параметры

    attribute

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

    key

    Одна из констант описала в Атрибутах Сцены, который идентифицирует атрибут, который будет записан.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.8 и позже.

  • Экспортирует сцену и ее содержание к файлу в указанном URL.

    Объявление

    Swift

    func writeToURL(_ url: NSURL, options options: [NSObject : AnyObject]?, delegate delegate: SCNSceneExportDelegate?, progressHandler progressHandler: SCNSceneExportProgressHandler?) -> Bool

    Objective C

    - (BOOL)writeToURL:(NSURL *)url options:(NSDictionary *)options delegate:(id<SCNSceneExportDelegate>)delegate progressHandler:(SCNSceneExportProgressHandler)progressHandler

    Параметры

    url

    URL для записи файла сцены в. Этот URL должен использовать file схема.

    options

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

    delegate

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

    progressHandler

    Блок, который SceneKit вызывает неоднократно для создания отчетов о прогрессе работы экспорта.

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

    YEStrue если экспорт сцены был успешен; иначе, NOfalse.

    Обсуждение

    SceneKit создает и пишет файл, содержащий график сцены в формате DAE Collada.

    Если ссылки сцены внешние ресурсы, такие как файлы образа, используемые в свойствах материала, SceneKit экспортирует эти файлы в соседнее расположение и ссылается на их URLs в экспортируемом файле сцены. Для переопределения экспорта SceneKit внешних ресурсов обеспечьте объект, реализовав SCNSceneExportDelegate протокол в delegate параметр.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Расстояние с точки зрения, в которой содержание сцены начинает затеняться вуалью. Animatable.

    Объявление

    Swift

    var fogStartDistance: CGFloat

    Objective C

    @property(nonatomic) CGFloat fogStartDistance

    Обсуждение

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

    Расстояние запуска по умолчанию 0.0.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • fogEndDistance fogEndDistance Свойство

    Расстояние с точки зрения, в которой содержание сцены полностью затенено вуалью. Animatable.

    Объявление

    Swift

    var fogEndDistance: CGFloat

    Objective C

    @property(nonatomic) CGFloat fogEndDistance

    Обсуждение

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

    Расстояние конца по умолчанию 0.0 отключает эффект вуали. Измените значение этого свойства для включения вуали.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Кривая перехода для интенсивности вуали между ее запуском и расстояниями конца. Animatable.

    Объявление

    Swift

    var fogDensityExponent: CGFloat

    Objective C

    @property(nonatomic) CGFloat fogDensityExponent

    Обсуждение

    Эффект вуали постепенно исчезает содержание сцены с увеличивающимся расстоянием от pointOfView расположение, заменяя их увеличивающейся интенсивностью fogColor цвет. fogDensityExponent свойство определяет гладкость или внезапность этого перехода.

    Значение 0.0 (значение по умолчанию), не указывает затухания — интенсивность вуали является тем же на всех расстояниях. Значение 1.0 указывает линейный переход и значение 2.0 указывает квадратичную кривую перехода. Более высокие значения имеют мало видимого эффекта.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • fogColor fogColor Свойство

    Цвет эффекта вуали, который будет представлен со сценой. Animatable.

    Объявление

    Swift

    var fogColor: AnyObject

    Objective C

    @property(nonatomic, retain) id fogColor

    Обсуждение

    Значение этого свойства может быть NSColor объект (в OS X), a UIColor объект (в iOS), или a CGColorRef объект. Цвет вуали по умолчанию является белым.

    Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • physicsWorld physicsWorld Свойство

    Моделирование физики связалось со сценой. (только для чтения)

    Объявление

    Swift

    var physicsWorld: SCNPhysicsWorld { get }

    Objective C

    @property(nonatomic, readonly) SCNPhysicsWorld *physicsWorld

    Обсуждение

    Каждая сцена автоматически создает объект мира физики моделировать физику на узлах в сцене. Вы используете это свойство, чтобы получить доступ к глобальным свойствам физики сцены, таким как сила тяжести, и управлять взаимодействиями физики между узлами. Чтобы заставить узел в сцене участвовать в моделировании физики, используйте или или оба из physicsBody и physicsField свойства.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Присоединяет систему частиц к сцене, с помощью указанного преобразования.

    Объявление

    Swift

    func addParticleSystem(_ system: SCNParticleSystem, withTransform transform: SCNMatrix4)

    Objective C

    - (void)addParticleSystem:(SCNParticleSystem *)system withTransform:(SCNMatrix4)transform

    Параметры

    system

    Система частиц.

    transform

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

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • particleSystems particleSystems Свойство

    Системы частиц, присоединенные к сцене. (только для чтения)

    Объявление

    Swift

    var particleSystems: [AnyObject]? { get }

    Objective C

    @property(readonly) NSArray *particleSystems

    Обсуждение

    Массив SCNParticleSystem объекты, непосредственно присоединенные к сцене. Этот массив не включает системы частиц, присоединенные к узлам в сцене.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Удаляет систему частиц, присоединенную к сцене.

    Объявление

    Swift

    func removeParticleSystem(_ system: SCNParticleSystem)

    Objective C

    - (void)removeParticleSystem:(SCNParticleSystem *)system

    Параметры

    system

    Система частиц.

    Обсуждение

    Этот метод не имеет никакого эффекта если system параметр не ссылается на систему частиц, непосредственно присоединенную к сцене.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

  • Удаляет любые системы частиц, непосредственно присоединенные к сцене.

    Объявление

    Swift

    func removeAllParticleSystems()

    Objective C

    - (void)removeAllParticleSystems

    Обсуждение

    Вызов этого метода не удаляет системы частиц, присоединенные к узлам в сцене.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.10 и позже.

Типы данных

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

    Объявление

    Swift

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

    Objective C

    typedef void (^SCNSceneExportProgressHandler)(float totalProgress, NSError *error, BOOL *stop)

    Обсуждение

    Вы указываете блок с этой подписью при вызове writeToURL:options:delegate:progressHandler: метод для получения обновлений на прогрессе работы экспорта. Блок берет следующие параметры:

    totalProgress

    Число между 0.0 и 1.0 это указывает прогресс работы экспорта, с 0.0 указание, что работа только что началась и 1.0 указание работы завершилось.

    error

    Ошибка встретилась во время процесса экспорта, или nil если не произошли никакие ошибки.

    stop

    Набор *stop к YEStrue в блоке для отмены экспорта.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Ключи атрибута, доступные в словаре опций для методов attributeForKey: и setAttribute:forKey:

    Объявление

    Swift

    let SCNSceneEndTimeAttributeKey: NSString! let SCNSceneFrameRateAttributeKey: NSString! let SCNSceneStartTimeAttributeKey: NSString! let SCNSceneUpAxisAttributeKey: NSString!

    Objective C

    NSString * const SCNSceneEndTimeAttributeKey; NSString * const SCNSceneFrameRateAttributeKey; NSString * const SCNSceneStartTimeAttributeKey; NSString * const SCNSceneUpAxisAttributeKey;

    Константы

    • SCNSceneEndTimeAttributeKey

      SCNSceneEndTimeAttributeKey

      Значение с плавающей точкой (в NSNumber объект) в течение времени окончания сцены.

      Доступный в OS X v10.8 и позже.

    • SCNSceneFrameRateAttributeKey

      SCNSceneFrameRateAttributeKey

      Значение с плавающей точкой (в NSNumber объект) для частоты кадров сцены.

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

      Доступный в OS X v10.8 и позже.

    • SCNSceneStartTimeAttributeKey

      SCNSceneStartTimeAttributeKey

      Значение с плавающей точкой (в NSNumber объект) в течение времени начала сцены.

      Доступный в OS X v10.8 и позже.

    • SCNSceneUpAxisAttributeKey

      SCNSceneUpAxisAttributeKey

      SCNVector3 структура (в NSValue объект) указание ориентации сцены.

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

      Доступный в OS X v10.10 и позже.

  • Опции для writeToURL:options:delegate:progressHandler: метод.

    Объявление

    Swift

    let SCNSceneExportDestinationURL: NSString!

    Objective C

    NSString * const SCNSceneExportDestinationURL

    Константы

    • SCNSceneExportDestinationURL

      SCNSceneExportDestinationURL

      Конечное место назначения URL ( NSURL объект) для экспортируемого файла сцены.

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

      Доступный в OS X v10.9 и позже.