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?(namedname: 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?(namedname: String, inDirectorydirectory: String?, optionsoptions: [NSObject : AnyObject]?)Objective C
+ (instancetype)sceneNamed:(NSString *)nameinDirectory:(NSString *)directoryoptions:(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?(URLurl: NSURL, optionsoptions: [NSObject : AnyObject]?, errorerror: NSErrorPointer)Objective C
+ (instancetype)sceneWithURL:(NSURL *)urloptions:(NSDictionary *)optionserror:(NSError **)errorПараметры
urlURL к файлу сцены для загрузки.
optionsСловарь опций, влияющих на загрузку сцены, или
nilдля опций по умолчанию. Для доступных ключей посмотрите, что Сцена Загружает Опции.errorЕсли ошибка происходит, этот указатель установлен в
NSErrorобъект, описывающий ошибку. Если Вы не хотите информации об ошибке, передайте вnil.Возвращаемое значение
Новый объект сцены, или
nilесли не могла бы быть загружена никакая сцена.Обсуждение
Этот метод обеспечивает удобный способ загрузить полную сцену из файла в произвольном URL. Для более подробных опций или загрузить только часть графика сцены файла, используйте
SCNSceneSourceкласс.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
См. также
-
pausedСвойствоБулево значение, определяющее, выполнить ли действия, анимации, системы частиц и моделирования физики в графике сцены.
Объявление
Swift
var paused: BoolObjective C
@property(nonatomic, getter=isPaused) BOOL pausedОбсуждение
Если
NOfalse(значение по умолчанию), 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)attributeforKey:(NSString *)keyПараметры
attributeОбъект, указывающий значение атрибута, который будет записан.
keyОдна из констант описала в Атрибутах Сцены, который идентифицирует атрибут, который будет записан.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
fogStartDistanceСвойствоРасстояние с точки зрения, в которой содержание сцены начинает затеняться вуалью. Animatable.
Объявление
Swift
var fogStartDistance: CGFloatObjective 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: CGFloatObjective 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: CGFloatObjective 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: AnyObjectObjective 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 *)systemwithTransform:(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>) -> VoidObjective 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Доступность
Доступный в iOS 8.0 и позже.
-
Ключи атрибута, доступные в словаре опций для методов
attributeForKey:иsetAttribute:forKey:Объявление
Swift
let SCNSceneEndTimeAttributeKey: String let SCNSceneFrameRateAttributeKey: String let SCNSceneStartTimeAttributeKey: String let SCNSceneUpAxisAttributeKey: StringObjective 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 и позже.
-
SCNSceneUpAxisAttributeKeySCNVector3структура (вNSValueобъект) указание ориентации сцены.Это значение может присутствовать в сценах, загруженных из файлов сцены, произведенных с помощью внешних инструментов, но не имеет никакого эффекта на обработку SceneKit сцены. Используйте этот вектор при объединении элементов от различных сцен так, чтобы они появились в своей ожидаемой ориентации.
Доступный в iOS 8.0 и позже.
-
-
Опции для
writeToURL:options:delegate:progressHandler:метод.Объявление
Swift
let SCNSceneExportDestinationURL: StringObjective C
NSString * const SCNSceneExportDestinationURLКонстанты
-
SCNSceneExportDestinationURLКонечное место назначения URL (
NSURLобъект) для экспортируемого файла сцены.Используйте эту опцию, если Вы экспортируете сцену во временный каталог и затем перемещаете ее в заключительное расположение. Необходимо указать конечное место назначения URL если ссылки сцены внешние ресурсы, такие как файлы образа для текстур. SceneKit использует этот URL для построения надлежащих путей для внешних ресурсов при записи файла сцены.
Доступный в iOS 8.0 и позже.
-
