SCNScene
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
NSObject
-
NSSecureCoding
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
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, такие как организации физики и поля, ограничения и системы частиц.
Работа с анимациями в сцене
Объект сцены определяет основу времени для любых анимаций, содержавшихся в ее графике сцены. Вы управляете сценой, синхронизирующей атрибуты с помощью методов в Управляющих Атрибутах Сцены и константах, перечисленных в Атрибутах Сцены.
-
Создает и возвращает пустую сцену.
Объявление
Objective C
+ (instancetype)scene
Возвращаемое значение
Новый, пустой объект сцены.
Обсуждение
Пустая сцена содержит только корень
SCNNode
объект без содержания. Для заполнения сцены добавьте дочерние элементы к корневому узлу.Оператор импорта
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Загружает сцену из файла с указанным именем в основном пакете приложения.
Объявление
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
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Загружает сцену из файла с указанным именем в определенном подкаталоге основного пакета приложения.
Объявление
Swift
convenience init?(named
name
: String, inDirectorydirectory
: String?, optionsoptions
: [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
Доступность
Доступный в iOS 8.0 и позже.
-
Загружает сцену из указанного URL.
Объявление
Swift
convenience init?(URL
url
: NSURL, optionsoptions
: [NSObject : AnyObject]?, errorerror
: 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
Доступность
Доступный в iOS 8.0 и позже.
См. также
-
paused
СвойствоБулево значение, определяющее, выполнить ли действия, анимации, системы частиц и моделирования физики в графике сцены.
Объявление
Swift
var paused: Bool
Objective C
@property(nonatomic, getter=isPaused) BOOL paused
Обсуждение
Если
NO
false
(значение по умолчанию), SceneKit постоянно обновляет и представляет содержание сцены. Приостановка сцены паузы любые рабочие анимации или действия, присоединенные к графику сцены, и, приостанавливает обновления моделирования физики сцены и любых систем частиц в сцене.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
rootNode
СвойствоКорневой узел графика сцены. (только для чтения)
Объявление
Swift
var rootNode: SCNNode { get }
Objective C
@property(nonatomic, readonly) SCNNode *rootNode
Обсуждение
Все содержание сцены — узлы, конфигурации и их материалы, световые сигналы, камеры и связанные объекты — организованы в иерархии узла с единственным общим корневым узлом.
Некоторые файлы сцены создаваемое использование внешних инструментов могут описать иерархии узла, содержащие многократные корневые узлы. Когда SceneKit импортирует такие файлы, их отдельные корневые узлы будут сделаны дочерними элементами нового, уникального корневого узла.
Система координат каждого дочернего узла определяется относительно трансформации ее родительского узла. Вы не должны изменять
transform
свойство корневого узла.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
background
СвойствоФон, который будет представлен перед остальной частью сцены. (только для чтения)
Объявление
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
Доступность
Доступный в iOS 8.0 и позже.
-
Возвращает атрибут сцены для указанного ключа.
Объявление
Swift
func attributeForKey(_
key
: String) -> AnyObject?Objective C
- (id)attributeForKey:(NSString *)
key
Параметры
key
Одна из констант описала в Атрибутах Сцены, который идентифицирует атрибут, который будет считан.
Возвращаемое значение
Атрибут сцены для указанного ключа, или
nil
если не существует никакой такой атрибут.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Устанавливает атрибут сцены для указанного ключа.
Объявление
Swift
func setAttribute(_
attribute
: AnyObject, forKeykey
: String)Objective C
- (void)setAttribute:(id)
attribute
forKey:(NSString *)key
Параметры
attribute
Объект, указывающий значение атрибута, который будет записан.
key
Одна из констант описала в Атрибутах Сцены, который идентифицирует атрибут, который будет записан.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
fogStartDistance
СвойствоРасстояние с точки зрения, в которой содержание сцены начинает затеняться вуалью. 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
Доступность
Доступный в iOS 8.0 и позже.
-
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
Доступность
Доступный в iOS 8.0 и позже.
-
fogDensityExponent
СвойствоКривая перехода для интенсивности вуали между ее запуском и расстояниями конца. 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
Доступность
Доступный в iOS 8.0 и позже.
-
fogColor
СвойствоЦвет эффекта вуали, который будет представлен со сценой. Animatable.
Объявление
Swift
var fogColor: AnyObject
Objective C
@property(nonatomic, retain) id fogColor
Обсуждение
Значение этого свойства может быть
NSColor
объект (в OS X), aUIColor
объект (в iOS), или aCGColorRef
объект. Цвет вуали по умолчанию является белым.Можно анимировать изменения в значении этого свойства. Посмотрите Анимацию Содержание SceneKit.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
physicsWorld
СвойствоМоделирование физики связалось со сценой. (только для чтения)
Объявление
Swift
var physicsWorld: SCNPhysicsWorld { get }
Objective C
@property(nonatomic, readonly) SCNPhysicsWorld *physicsWorld
Обсуждение
Каждая сцена автоматически создает объект мира физики моделировать физику на узлах в сцене. Вы используете это свойство, чтобы получить доступ к глобальным свойствам физики сцены, таким как сила тяжести, и управлять взаимодействиями физики между узлами. Чтобы заставить узел в сцене участвовать в моделировании физики, используйте или или оба из
physicsBody
иphysicsField
свойства.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Присоединяет систему частиц к сцене, с помощью указанного преобразования.
Объявление
Swift
func addParticleSystem(_
system
: SCNParticleSystem, withTransformtransform
: SCNMatrix4)Objective C
- (void)addParticleSystem:(SCNParticleSystem *)
system
withTransform:(SCNMatrix4)transform
Параметры
system
Система частиц.
transform
Матрица преобразования, что позиции и ориентируют систему частиц относительно пространства мировой координаты сцены.
Обсуждение
Система частиц, непосредственно присоединенная к сцене, не связана с координатным пространством никакого узла в сцене. Для присоединения системы частиц, эмиттерное расположение которой следует за перемещением узла в сцене используйте соответствие
SCNNode
метод.Для получения дополнительной информации в системах частиц, посмотрите Ссылку класса SCNParticleSystem.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
particleSystems
СвойствоСистемы частиц, присоединенные к сцене. (только для чтения)
Объявление
Swift
var particleSystems: [AnyObject]? { get }
Objective C
@property(readonly) NSArray *particleSystems
Обсуждение
Массив
SCNParticleSystem
объекты, непосредственно присоединенные к сцене. Этот массив не включает системы частиц, присоединенные к узлам в сцене.Для получения дополнительной информации в системах частиц, посмотрите Ссылку класса SCNParticleSystem.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Удаляет систему частиц, присоединенную к сцене.
Объявление
Swift
func removeParticleSystem(_
system
: SCNParticleSystem)Objective C
- (void)removeParticleSystem:(SCNParticleSystem *)
system
Параметры
system
Система частиц.
Обсуждение
Этот метод не имеет никакого эффекта если
system
параметр не ссылается на систему частиц, непосредственно присоединенную к сцене.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Удаляет любые системы частиц, непосредственно присоединенные к сцене.
Объявление
Swift
func removeAllParticleSystems()
Objective C
- (void)removeAllParticleSystems
Обсуждение
Вызов этого метода не удаляет системы частиц, присоединенные к узлам в сцене.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
Типы данных
-
Подпись для блока, который 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
кYES
true
в блоке для отмены экспорта.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в iOS 8.0 и позже.
-
Ключи атрибута, доступные в словаре опций для методов
attributeForKey:
иsetAttribute:forKey:
Объявление
Swift
let SCNSceneEndTimeAttributeKey: String let SCNSceneFrameRateAttributeKey: String let SCNSceneStartTimeAttributeKey: String let SCNSceneUpAxisAttributeKey: String
Objective C
NSString * const SCNSceneEndTimeAttributeKey; NSString * const SCNSceneFrameRateAttributeKey; NSString * const SCNSceneStartTimeAttributeKey; NSString * const SCNSceneUpAxisAttributeKey;
Константы
-
SCNSceneEndTimeAttributeKey
Значение с плавающей точкой (в
NSNumber
объект) в течение времени окончания сцены.Доступный в iOS 8.0 и позже.
-
SCNSceneFrameRateAttributeKey
Значение с плавающей точкой (в
NSNumber
объект) для частоты кадров сцены.Это значение может присутствовать в сценах, загруженных из файлов сцены, произведенных с помощью внешних инструментов, но не имеет никакого эффекта на рендеринг SceneKit сцены.
Доступный в iOS 8.0 и позже.
-
SCNSceneStartTimeAttributeKey
Значение с плавающей точкой (в
NSNumber
объект) в течение времени начала сцены.Доступный в iOS 8.0 и позже.
-
SCNSceneUpAxisAttributeKey
SCNVector3
структура (вNSValue
объект) указание ориентации сцены.Это значение может присутствовать в сценах, загруженных из файлов сцены, произведенных с помощью внешних инструментов, но не имеет никакого эффекта на обработку SceneKit сцены. Используйте этот вектор при объединении элементов от различных сцен так, чтобы они появились в своей ожидаемой ориентации.
Доступный в iOS 8.0 и позже.
-
-
Опции для
writeToURL:options:delegate:progressHandler:
метод.Объявление
Swift
let SCNSceneExportDestinationURL: String
Objective C
NSString * const SCNSceneExportDestinationURL
Константы
-
SCNSceneExportDestinationURL
Конечное место назначения URL (
NSURL
объект) для экспортируемого файла сцены.Используйте эту опцию, если Вы экспортируете сцену во временный каталог и затем перемещаете ее в заключительное расположение. Необходимо указать конечное место назначения URL если ссылки сцены внешние ресурсы, такие как файлы образа для текстур. SceneKit использует этот URL для построения надлежащих путей для внешних ресурсов при записи файла сцены.
Доступный в iOS 8.0 и позже.
-