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

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

Разработчик

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

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

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

SCNNode

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


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


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


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

SCNNode объект представляет часть графика сцены. Узел отдельно не имеет никакого видимого содержания, когда сцена, содержащая его, представляется — он представляет только позицию в пространстве (и трансформация координатных пространств) относительно ее родительского узла. Для построения сцены Вы используете иерархию узлов, чтобы создать ее структуру, затем добавить световые сигналы, камеры и геометрию к узлам для создания видимого содержания.

Узлы определяют структуру сцены

Иерархия узлов или график сцены, в сцене определяет и организацию своего содержания и Вашу возможность представить и управлять тем содержанием использование SceneKit. Можно создать иерархию узла программно с помощью SceneKit, загрузиться один от файла, создаваемого с помощью 3D инструментов разработки, или объединить два подхода. SceneKit обеспечивает много утилит для организации и поиска графика сцены — для подробных данных, посмотрите методы в Управлении Иерархией Узла и Поиске Иерархии Узла.

rootNode объект в сцене определяет систему координат мира, представленного SceneKit. Каждый дочерний узел, который Вы добавляете к этому корневому узлу, создает свою собственную систему координат, поочередно наследованную его собственными дочерними элементами. Вы определяете трансформацию между системами координат с помощью узла position, rotation, и scale свойства свойств (или непосредственно использование transform свойство).

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

Присоединения узла определяют визуальное содержание и поведение

Иерархия узла определяет пространственную и логическую структуру сцены, но не ее видимое содержание. Вы добавляете 2D и 3D объекты к сцене путем присоединения SCNGeometry объекты к узлам. (Конфигурации, в свою очередь, присоединили SCNMaterial объекты, определяющие их появление.) Для штриховки конфигураций в сцене со световыми эффектами и эффектами тени добавьте узлы с присоединенным SCNLight объекты. Для управления точкой зрения, с которой сцена появляется, когда представлено добавьте узлы с присоединенным SCNCamera объекты.

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

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

  • Создает и возвращает объект узла.

    Объявление

    Objective C

    + (instancetype)node

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

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

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

    Objective C

    @import SceneKit;

    Доступность

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

  • Создает и возвращает объект узла с указанной присоединенной геометрией.

    Объявление

    Swift

    init(geometry geometry: SCNGeometry) -> SCNNode

    Objective C

    + (SCNNode *)nodeWithGeometry:(SCNGeometry *)geometry

    Параметры

    geometry

    Геометрия, которая будет присоединена.

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • name Свойство

    Имя связалось с узлом.

    Объявление

    Swift

    var name: String?

    Objective C

    @property(nonatomic, copy) NSString *name

    Обсуждение

    Можно обеспечить описательное имя для узла для создания управления графиком сцены проще. Узлы, загруженные из файла сцены, могут иметь имена, присвоенные художником, использующим 3D инструмент разработки. Используйте childNodeWithName:recursively: или childNodesPassingTest: метод для получения узла от графика сцены его именем, или SCNSceneSource класс для исследования узлов в файле сцены, не загружая его график сцены.

    Имена узлов и их присоединенных объектов сохраняются при экспорте сцены в файл с помощью writeToURL:options:delegate:progressHandler: метод, и появляется в редакторе сцены XCode. Представление статистики SceneKit (см. showsStatistics) также показывает имена узлов с прикрепленными камерами.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • light Свойство

    Свет, присоединенный к узлу.

    Объявление

    Swift

    var light: SCNLight?

    Objective C

    @property(nonatomic, retain) SCNLight *light

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • camera Свойство

    Камера, присоединенная к узлу.

    Объявление

    Swift

    var camera: SCNCamera?

    Objective C

    @property(nonatomic, retain) SCNCamera *camera

    Обсуждение

    Для использования камеры для отображения сцены установите pointOfView свойство представления (или уровень или средство рендеринга) отображение сцены к узлу, содержащему камеру. Камера выглядит в направлении отрицательной оси z узла, таким образом, Вы нацеливаете камеру, меняя положение и ориентацию узла, содержащего его. Вы управляете геометрическими и оптическими параметрами камеры — проекцией, полем зрения, и глубиной резкости — использование присоединенного SCNCamera объект.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • geometry Свойство

    Геометрия, присоединенная к узлу.

    Объявление

    Swift

    var geometry: SCNGeometry?

    Objective C

    @property(nonatomic, retain) SCNGeometry *geometry

    Обсуждение

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

    Анимация геометрических свойств узла может переместить, повернуть, расширить и масштабировать свою геометрию. Для более усовершенствованных анимаций геометрии узла используйте morpher и skinner объекты.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • morpher Свойство

    Объект morpher, ответственный за смешивание геометрии узла.

    Объявление

    Swift

    var morpher: SCNMorpher?

    Objective C

    @property(nonatomic, retain) SCNMorpher *morpher

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • skinner Свойство

    Объект кожевника, ответственный за скелетные анимации содержания узла.

    Объявление

    Swift

    var skinner: SCNSkinner?

    Objective C

    @property(nonatomic, retain) SCNSkinner *skinner

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • categoryBitMask Свойство

    Маска, определяющая, которому принадлежат категории узел.

    Объявление

    Swift

    var categoryBitMask: Int

    Objective C

    @property(nonatomic) NSUInteger categoryBitMask

    Обсуждение

    Можно присвоить каждый узел в сцене к одной или более категориям, где каждая категория соответствует немного в битовой маске. Вы определяете значения маски, используемые в Вашем приложении. Когда SceneKit представляет сцену, он сравнивает каждый узел categoryBitMask свойство с битовыми масками категории любого объекта, участвующего в процессе рендеринга — световых сигналах, камерах, и методах — использование поразрядной операции И. Если результатом является ненулевое значение, SceneKit включает узел при рендеринге.

    Используйте битовую маску категории узла вместе с:

    • SCNLight объект categoryBitMask свойство для исключения узла из освещения того света

    • SCNCamera объект categoryBitMask свойство для создания узла невидимым для той камеры

    • Битовые маски категории в SCNTechnique словарь определения объекта, чтобы включать или исключить узел из фаз многопроходного метода рендеринга

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Возвращает объект узла, представляющий состояние узла, поскольку это в настоящее время появляется на экране.

    Объявление

    Swift

    func presentationNode() -> SCNNode

    Objective C

    - (SCNNode *)presentationNode

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

    Копия объекта узла текущей презентации.

    Обсуждение

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

    Не изменяйте свойства узла представления. (Пытающийся сделать так результаты в неопределенном поведении.) Вместо этого Вы используете узел представления, чтобы считать значения текущей анимации — например, создать новую анимацию, запускающуюся в тех значениях. Узел представления не имеет никаких родительских или дочерних узлов. К анимированным свойствам доступа связанных узлов используйте собственный узел parentNode и childNodes свойства и presentationNode метод каждого связанного узла.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • paused Свойство

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

    Объявление

    Swift

    var paused: Bool

    Objective C

    @property(nonatomic, getter=isPaused) BOOL paused

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • transform Свойство

    Трансформация применилась к узлу относительно своего родителя. Animatable.

    Объявление

    Swift

    var transform: SCNMatrix4

    Objective C

    @property(nonatomic) SCNMatrix4 transform

    Обсуждение

    Трансформация является комбинацией узла rotation, position, и scale свойства. Трансформация по умолчанию SCNMatrix4Identity.

    Когда Вы устанавливаете значение этого свойства, узел rotation, orientation, eulerAngles, position, и scale свойства автоматически изменяются для соответствия нового преобразования, и наоборот. SceneKit может выполнить это преобразование, только если преобразование, которое Вы обеспечиваете, является комбинацией вращения, перевода и операций масштабирования. При установке значения этого свойства к скошенной трансформации или к неаффинной трансформации значения этих свойств становятся неопределенными. Установка нового значения для любого из этих свойств заставляют SceneKit вычислять новую трансформацию, отбрасывание любых скошенных или неаффинных операций в исходной трансформации.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • position Свойство

    Перевод применился к узлу. Animatable.

    Объявление

    Swift

    var position: SCNVector3

    Objective C

    @property(nonatomic) SCNVector3 position

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • rotation Свойство

    Ориентация узла, выраженная как угол вращения приблизительно ось. Animatable.

    Объявление

    Swift

    var rotation: SCNVector4

    Objective C

    @property(nonatomic) SCNVector4 rotation

    Обсуждение

    Четырехкомпонентный вектор вращения указывает направление оси вращения в первых трех компонентах и углу вращения (в радианах) в четвертом. Вращение по умолчанию является нулевым вектором, не указывая вращения. Вращение применяется относительно узла pivot свойство.

    rotation, eulerAngles, и orientation свойства все влияние вращательный аспект узла transform свойство. Любое изменение в одном из этих свойств отражается в других.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • eulerAngles Свойство

    Ориентация узла, выраженная как подача, отклонение от курса, и углы вращения, каждый в радианах. Animatable.

    Объявление

    Swift

    var eulerAngles: SCNVector3

    Objective C

    @property(nonatomic) SCNVector3 eulerAngles

    Обсуждение

    Порядок компонентов в этом векторе соответствует оси вращения:

    • Подача ( x компонент), вращение вокруг оси X узла.

    • Отклонение от курса ( y компонент), вращение вокруг оси y узла.

    • Рулон ( z компонент), вращение вокруг оси z узла.

    SceneKit применяет эти вращения относительно узла pivot свойство в обратном порядке компонентов: первый рулон, затем отклоняйтесь от курса, затем сделайте подачу. rotation, eulerAngles, и orientation свойства все влияние вращательный аспект узла transform свойство. Любое изменение в одном из этих свойств отражается в других.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • orientation Свойство

    Ориентация узла, выраженная как кватернион. Animatable.

    Объявление

    Swift

    var orientation: SCNQuaternion

    Objective C

    @property(nonatomic) SCNQuaternion orientation

    Обсуждение

    rotation, eulerAngles, и orientation свойства все влияние вращательный аспект узла transform свойство. Любое изменение в одном из этих свойств отражается в других.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • scale Свойство

    Масштабный коэффициент применился к узлу. Animatable.

    Объявление

    Swift

    var scale: SCNVector3

    Objective C

    @property(nonatomic) SCNVector3 scale

    Обсуждение

    Каждый компонент вектора масштаба умножает соответствующую размерность геометрии узла. Масштаб по умолчанию 1.0 во всех трех измерениях. Например, применение масштаба (2.0, 0.5, 2.0) к узлу, содержащему геометрию куба, сокращает свою высоту и увеличивает ее ширину и глубину. Масштабирование применяется относительно узла pivot свойство.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • pivot Свойство

    Точка опоры для позиции узла, вращения и масштаба. Animatable.

    Объявление

    Swift

    var pivot: SCNMatrix4

    Objective C

    @property(nonatomic) SCNMatrix4 pivot

    Обсуждение

    Центр узла является трансформацией между своим координатным пространством и используемым ее position, rotation, и scale свойства. Центр по умолчанию SCNMatrix4Identity, указывая, что позиция узла определяет местоположение источника своей системы координат, ее вращение об оси через ее центр, и ее масштаб также относительно той центральной точки.

    Изменение центра преобразовывает, изменяет эти способы поведения многими полезными способами. Вы можете:

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

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

    • Скорректируйте центральную точку и направление для масштабирования узла. Например, с переводом преобразовывают Вас, может заставить узел расти или уменьшаться относительно угла вместо к его центру.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • worldTransform Свойство

    Мировое преобразование применилось к узлу. (только для чтения)

    Объявление

    Swift

    var worldTransform: SCNMatrix4 { get }

    Objective C

    @property(nonatomic, readonly) SCNMatrix4 worldTransform

    Обсуждение

    Мировое преобразование является трансформацией координатного пространства узла относительно координатного пространства сцены. Эта трансформация является связью узла transform свойство с тем из его родительского узла, родителя родителя, и т.д. до rootNode объект сцены.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • constraints Свойство

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

    Объявление

    Swift

    var constraints: [AnyObject]?

    Objective C

    @property(copy) NSArray *constraints

    Обсуждение

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

    Используйте SCNLookAtConstraint класс, чтобы заставить узел всегда указать на другой узел, как раз когда оба перемещены, или SCNTransformConstraint класс для применения произвольных трансформаций в ограничительное время оценки.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • hidden Свойство

    Булево значение, определяющее видимость содержания узла. Animatable.

    Объявление

    Swift

    var hidden: Bool

    Objective C

    @property(nonatomic, getter=isHidden) BOOL hidden

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • opacity Свойство

    Значение непрозрачности узла. Animatable.

    Объявление

    Swift

    var opacity: CGFloat

    Objective C

    @property(nonatomic) CGFloat opacity

    Обсуждение

    Возможные значения между 0.0 (полностью прозрачный) и 1.0 (полностью непрозрачный). Значение по умолчанию 1.0.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • renderingOrder Свойство

    Порядок содержание узла нарисован в относительно того из других узлов.

    Объявление

    Swift

    var renderingOrder: Int

    Objective C

    @property(nonatomic) NSInteger renderingOrder

    Обсуждение

    Узлы с большими заказами рендеринга представляются в последний раз. Значения по умолчанию для обнуления.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • castsShadow Свойство

    Булево значение, определяющее, представляет ли SceneKit содержание узла в схемах затенения.

    Объявление

    Swift

    var castsShadow: Bool

    Objective C

    @property(nonatomic) BOOL castsShadow

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • parentNode Свойство

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

    Объявление

    Swift

    var parentNode: SCNNode? { get }

    Objective C

    @property(nonatomic, readonly) SCNNode *parentNode

    Обсуждение

    Для сцены rootNode объект, значение этого свойства nil.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • childNodes Свойство

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

    Объявление

    Swift

    var childNodes: [AnyObject] { get }

    Objective C

    @property(nonatomic, readonly) NSArray *childNodes

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Добавляет узел к массиву узла дочерних элементов.

    Объявление

    Swift

    func addChildNode(_ child: SCNNode)

    Objective C

    - (void)addChildNode:(SCNNode *)child

    Параметры

    child

    Узел, который будет добавлен.

    Обсуждение

    Вызов этого метода добавляет узел до конца childNodes массив.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Добавляет узел к массиву узла дочерних элементов в указанном индексе.

    Объявление

    Swift

    func insertChildNode(_ child: SCNNode, atIndex index: Int)

    Objective C

    - (void)insertChildNode:(SCNNode *)child atIndex:(NSUInteger)index

    Параметры

    child

    Узел, который будет вставлен.

    index

    Позиция, в которой можно вставить новый дочерний узел.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    – addChildNode:
    childNodes

  • Удаляет узел из массива его родителя дочерних узлов.

    Объявление

    Swift

    func removeFromParentNode()

    Objective C

    - (void)removeFromParentNode

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Удаляет дочерний элемент из массива узла дочерних элементов и вставляет другой узел в его место.

    Объявление

    Swift

    func replaceChildNode(_ child: SCNNode, with child2: SCNNode)

    Objective C

    - (void)replaceChildNode:(SCNNode *)child with:(SCNNode *)child2

    Параметры

    child

    Существующий дочерний узел, который будет заменен.

    child2

    Узел, которым можно заменить дочерний узел.

    Обсуждение

    Если оба child и child2 узлы являются дочерними элементами узла, вызывание этого метода подкачивает их позиции в массиве. Обратите внимание на то, что удаление узла от иерархии узла может привести к нему освобождаемый.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

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

    Objective C

    - (NSArray *)childNodesPassingTest:(BOOL (^)(SCNNode *child, BOOL *stop))predicate

    Параметры

    predicate

    Блок для применения к дочерним и порожденным узлам узла.

    • Блок берет два параметра:

    • child

      Дочерний узел, в настоящее время искавший.

      stop

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

    • Блок возвращает булево значение, указывающее, включать ли child узел в массиве результатов поиска.

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

    Массив, содержащий узлы, прошедшие тест.

    Обсуждение

    Используйте этот метод для поиска узлов с помощью теста, который Вы указываете. Например, можно искать пустые узлы с помощью блока, возвращающего YES для узлов чей light, camera, и geometry свойства - все nil.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Возвращает первый узел в дочернем поддереве узла узла с указанным именем.

    Объявление

    Swift

    func childNodeWithName(_ name: String, recursively recursively: Bool) -> SCNNode?

    Objective C

    - (SCNNode *)childNodeWithName:(NSString *)name recursively:(BOOL)recursively

    Параметры

    name

    Имя узла для поиска.

    recursively

    YEStrue искать все дочернее поддерево узла, или NOfalse искать только непосредственные дочерние элементы узла.

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Выполняет указанный блок для каждого из дочерних и порожденных узлов узла.

    Объявление

    Swift

    func enumerateChildNodesUsingBlock(_ block: (SCNNode!, UnsafeMutablePointer<ObjCBool>) -> Void)

    Objective C

    - (void)enumerateChildNodesUsingBlock:(void (^)(SCNNode *child, BOOL *stop))block

    Параметры

    block

    Блок для применения к дочерним и порожденным узлам узла.

    • Блок берет два параметра:

    • child

      Дочерний узел, в настоящее время будучи оцененным.

      stop

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

    Обсуждение

    SceneKit использует рекурсивный обход перед порядком для обработки дочернего поддерева узла — т.е. блочные выполнения для узла, прежде чем это будет работать за каждым из дочерних элементов узла, и это обрабатывает все дочерние элементы узла прежде, чем обработать любой из одноуровневых узлов того узла.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • filters Свойство

    Массив Базового Изображения фильтрует, чтобы быть примененным к представленному содержанию узла.

    Объявление

    Swift

    var filters: [AnyObject]?

    Objective C

    @property(nonatomic, copy) NSArray *filters

    Обсуждение

    Массив CIFilter объекты.

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

    • CIFilter *gaussianBlurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
    • gaussianBlurFilter.name = @"blur";
    • CIFilter *pixellateFilter = [CIFilter filterWithName:@"CIPixellate"];
    • pixellateFilter.name = @"pixellate";
    • node.filters = @[ pixellateFilter, gaussianBlurFilter ];

    После присоединения фильтров к узлу можно изменить параметры фильтра только путем вызова setValue:forKeyPath: на узле фильтр присоединен. (Непосредственно изменение параметров фильтра, присоединенного к узлу, приводит к неопределенному поведению.)

    Можно также анимировать параметры фильтра их ключевыми путями, как в коде ниже этого анимирует один из фильтров от предыдущего примера.

    • animation = [CABasicAnimation animationWithKeyPath:@"filters.pixellate.inputScale"];
    • animation.toValue = @50;
    • animation.fromValue = @0;
    • animation.autoreverses = YES;
    • animation.repeatCount = FLT_MAX;
    • animation.duration = 2.0;
    • animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    • [node addAnimation:animation forKey:nil];

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • rendererDelegate Свойство

    Объект, ответственный за рендеринг пользовательского содержания для узла с помощью OpenGL.

    Объявление

    Swift

    unowned(unsafe) var rendererDelegate: SCNNodeRendererDelegate?

    Objective C

    @property(nonatomic, assign) id< SCNNodeRendererDelegate > rendererDelegate

    Обсуждение

    Делегат средства рендеринга является пользовательским объектом, который Вы обеспечиваете. Когда SceneKit иначе представил бы содержание узла, он вместо этого говорит Вашему делегату средства рендеринга рисовать содержание для узла в контекст OpenGL, используемый для сцены.

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

    Если Вы вместо этого хотите настроить результаты рендеринга SceneKit геометрии и материалов, используйте SCNShadable протокол для присоединения программ построения теней GLSL к объектам SceneKit.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • physicsBody Свойство

    Организация физики связалась с узлом.

    Объявление

    Swift

    var physicsBody: SCNPhysicsBody?

    Objective C

    @property(nonatomic, retain) SCNPhysicsBody *physicsBody

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • physicsField Свойство

    Поле физики связалось с узлом.

    Объявление

    Swift

    var physicsField: SCNPhysicsField?

    Objective C

    @property(nonatomic, retain) SCNPhysicsField *physicsField

    Обсуждение

    Поля физики применяют силы к другим организациям физики в указанной области вокруг их узла. Например, a SCNPhysicsDragField поле замедляет все организации физики, проходящие через ее область. Для полного списка типов поля и их эффектов, посмотрите Ссылку класса SCNPhysicsField.

    Узел может содержать и организацию физики, определяющую поведение коллизии и поле физики, определяющее силы в его области. Например, два узла, содержащие организации физики и радиальные поля силы тяжести, будут притянуты друг другу, но возвратятся друг от друга, когда они столкнутся.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Присоединяет систему частиц к узлу.

    Объявление

    Swift

    func addParticleSystem(_ system: SCNParticleSystem)

    Objective C

    - (void)addParticleSystem:(SCNParticleSystem *)system

    Параметры

    system

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

    Обсуждение

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

    Для получения дополнительной информации в системах частиц, посмотрите Ссылку класса 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 и позже.

  • Создает копию узла и его дочерних элементов.

    Объявление

    Swift

    func clone() -> AnyObject

    Objective C

    - (id)clone

    Обсуждение

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

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

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

    • - (void)duplicateNode:(SCNNode *)node withMaterial:(SCNMaterial *)material
    • {
    • SCNNode *newNode = [node clone];
    • newNode.geometry = [node.geometry copy];
    • newNode.geometry.firstMaterial = material;
    • }

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Создает оптимизированную копию узла и его дочерних элементов.

    Объявление

    Swift

    func flattenedClone() -> SCNNode

    Objective C

    - (SCNNode *)flattenedClone

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

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

    Обсуждение

    Рендеринг сложных иерархий узла может понести расходы производительности. Каждая геометрия и материал требуют, чтобы отдельная команда получения была отправлена в GPU, и каждый рисует команду, идет с производительностью наверху. Если Вы планируете часть иерархии узла Вашей сцены остаться статичными (относительно себя, если не остальная часть сцены), используйте этот метод для создания единственного узла, содержащего все элементы той иерархии узла, что SceneKit может представить использование, меньше рисуют команды.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Ищет дочернее поддерево узла узла объекты, пересекающие линейный сегмент между двумя указанными точками.

    Объявление

    Swift

    func hitTestWithSegmentFromPoint(_ pointA: SCNVector3, toPoint pointB: SCNVector3, options options: [NSObject : AnyObject]?) -> [AnyObject]?

    Objective C

    - (NSArray *)hitTestWithSegmentFromPoint:(SCNVector3)pointA toPoint:(SCNVector3)pointB options:(NSDictionary *)options

    Параметры

    pointA

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

    pointB

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

    options

    Словарь опций, влияющих на поиск. Посмотрите Hit Testing Options Keys для приемлемых значений.

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

    Массив SCNHitTestResult объекты, представляющие результаты поиска.

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Преобразовывает позицию в координатное пространство узла от определенного другим узлом.

    Объявление

    Swift

    func convertPosition(_ position: SCNVector3, fromNode node: SCNNode?) -> SCNVector3

    Objective C

    - (SCNVector3)convertPosition:(SCNVector3)position fromNode:(SCNNode *)node

    Параметры

    position

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

    node

    Другой узел в том же графике сцены как узел, или nil преобразовать в пространство мировой координаты сцены.

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Преобразовывает позицию от координатного пространства узла до определенного другим узлом.

    Объявление

    Swift

    func convertPosition(_ position: SCNVector3, toNode node: SCNNode?) -> SCNVector3

    Objective C

    - (SCNVector3)convertPosition:(SCNVector3)position toNode:(SCNNode *)node

    Параметры

    position

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

    node

    Другой узел в том же графике сцены как узел, или nil преобразовать из пространства мировой координаты сцены.

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Преобразовывает трансформацию в координатное пространство узла от определенного другим узлом.

    Объявление

    Swift

    func convertTransform(_ transform: SCNMatrix4, fromNode node: SCNNode?) -> SCNMatrix4

    Objective C

    - (SCNMatrix4)convertTransform:(SCNMatrix4)transform fromNode:(SCNNode *)node

    Параметры

    transform

    Трансформация относительно координатного пространства узла.

    node

    Другой узел в том же графике сцены как узел, или nil преобразовать в пространство мировой координаты сцены.

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Преобразовывает трансформацию от координатного пространства узла до определенного другим узлом.

    Объявление

    Swift

    func convertTransform(_ transform: SCNMatrix4, toNode node: SCNNode?) -> SCNMatrix4

    Objective C

    - (SCNMatrix4)convertTransform:(SCNMatrix4)transform toNode:(SCNNode *)node

    Параметры

    transform

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

    node

    Другой узел в том же графике сцены как узел, или nil преобразовать в пространство мировой координаты сцены.

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

    Трансформация относительно координатного пространства узла.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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