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

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

Разработчик

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

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

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

SCNPhysicsBody

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

Для добавления физики к узлу создайте и сконфигурируйте SCNPhysicsBody возразите и затем присвойте его physicsBody свойство SCNNode объект. Организация физики должна быть связана с объектом узла перед применением сил или импульсов к ней.

Физические характеристики организации

SCNPhysicsBody класс определяет физические характеристики для организации, когда это моделируется сценой. Три свойства являются самыми важными для моделирования физики:

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

  • physicsShape свойство, определяющее трехмерную форму организации в целях обнаружения коллизий. Моделирования физики, выполненные быстрее при использовании простых форм вместо мелких деталей видимой геометрии узла. Как правило, Вы устанавливаете форму физики организации в ограничительную рамку, сферу или примитивную форму, примерно соответствующую видимое содержание ее узла. Для получения дополнительной информации при создании форм физики, посмотрите Ссылку класса SCNPhysicsShape.

  • mass свойство. Применение силы или крутящего момента к динамической организации приводит к ускорению (или угловое ускорение) пропорциональный его массе.

Все значения на моделировании физики SceneKit используют Международную систему единиц (SI): модуль массы является килограммом; модули силы, импульса и крутящего момента являются ньютоном, вторым ньютоном, и ньютон-метр; и модуль расстояния для позиций узла и размеров является метром. Обратите внимание на то, что Вы не должны пытаться обеспечить, реалистические значения для физических количеств — используют любые значения, производят поведение или геймплей, который Вы ищете.

Для динамической организации можно управлять, как организация затронута силами или коллизиями. Посмотрите Определение Как Влияние Сил Организация Физики.

Определение категории и коллизий организации

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

Используйте categoryBitMask и collisionBitMask свойства для определения поведения коллизии объекта. Константы, перечисленные в SCNPhysicsCollisionCategory обеспечьте значения по умолчанию для этих свойств.

Связанные классы физики

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

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

Сцена physicsWorld свойство содержит SCNPhysicsWorld объект, управляющий характеристиками физики, влияющими на всю сцену.

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


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


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в OS X v10.10 и позже.
  • Создает организацию физики с указанным типом и формой.

    Объявление

    Swift

    convenience init(type type: SCNPhysicsBodyType, shape shape: SCNPhysicsShape?)

    Objective C

    + (instancetype)bodyWithType:(SCNPhysicsBodyType)type shape:(SCNPhysicsShape *)shape

    Параметры

    type

    Константа, определяющая, как организация реагирует на силы и коллизии. Посмотрите SCNPhysicsBodyType.

    shape

    Форма физики, определяющая объем организации в целях обнаружения коллизий.

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

    Новый объект организации физики.

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    ввести
    physicsShape

  • Создает организацию физики, которая незатронута силами или коллизиями, и это не может переместиться.

    Объявление

    Swift

    class func staticBody() -> Self!

    Objective C

    + (instancetype)staticBody

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

    Новый объект организации физики.

    Обсуждение

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    class func dynamicBody() -> Self!

    Objective C

    + (instancetype)dynamicBody

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

    Новый объект организации физики.

    Обсуждение

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    class func kinematicBody() -> Self!

    Objective C

    + (instancetype)kinematicBody

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

    Новый объект организации физики.

    Обсуждение

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • physicsShape physicsShape Свойство

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

    Объявление

    Swift

    var physicsShape: SCNPhysicsShape?

    Objective C

    @property(nonatomic, retain) SCNPhysicsShape *physicsShape

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • ввести ввести Свойство

    Константа, определяющая, как организация физики реагирует на силы и коллизии.

    Объявление

    Swift

    var type: SCNPhysicsBodyType

    Objective C

    @property(nonatomic) SCNPhysicsBodyType type

    Обсуждение

    Посмотрите SCNPhysicsBodyType.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • velocityFactor velocityFactor Свойство

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

    Объявление

    Swift

    var velocityFactor: SCNVector3

    Objective C

    @property(nonatomic) SCNVector3 velocityFactor

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var angularVelocityFactor: SCNVector3

    Objective C

    @property(nonatomic) SCNVector3 angularVelocityFactor

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • масса масса Свойство

    Масса организации, в килограммах.

    Объявление

    Swift

    var mass: CGFloat

    Objective C

    @property(nonatomic) CGFloat mass

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • заряд заряд Свойство

    Электрический заряд организации, в кулонах.

    Объявление

    Swift

    var charge: CGFloat

    Objective C

    @property(nonatomic) CGFloat charge

    Обсуждение

    Заряд организации определяет свое поведение, когда затронуто электрическим или магнитным полем. Используйте SCNPhysicsField класс для добавления этих полей к сцене. Организации с положительными или отрицательными зарядами ведут себя по-другому, когда затронуто электрическими или магнитными полями. Электрический заряд по умолчанию на организации физики 0.0, то, чтобы заставлять его быть незатронутым электрическими и магнитными полями.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • трение трение Свойство

    Сопротивление организации скользящему движению.

    Объявление

    Swift

    var friction: CGFloat

    Objective C

    @property(nonatomic) CGFloat friction

    Обсуждение

    Это свойство моделирует шероховатость поверхности организации. Когда две организации находятся в контакте, и сила применяется, который заставил бы их скользить против друг друга, значения трения для обеих организаций определяют свое сопротивление для движений. Если значение трения обеих организаций 0.0, они скользят свободно друг против друга. Если значение трения обеих организаций 1.0, они не скользят вообще. Трение по умолчанию 0.5.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • rollingFriction rollingFriction Свойство

    Сопротивление организации прокручивающемуся движению.

    Объявление

    Swift

    var rollingFriction: CGFloat

    Objective C

    @property(nonatomic) CGFloat rollingFriction

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Фактор, определяющий, сколько кинетической энергии организация теряет или получает в коллизиях.

    Объявление

    Swift

    var restitution: CGFloat

    Objective C

    @property(nonatomic) CGFloat restitution

    Обсуждение

    Это свойство моделирует «пружинистость» организации. Реституция 1.0 средние значения, что организация не теряет энергии в коллизии — например, шар, отброшенный на плоскую поверхность, придут в норму к высоте, от которой она упала. Реституция 0.0 означает, что организация не возвращается после коллизии. Реституция больших, чем 1.0 заставляет организацию получать энергию в коллизиях. Реституция по умолчанию 0.5.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • Фактор, сокращающий линейную скорость организации.

    Объявление

    Swift

    var damping: CGFloat

    Objective C

    @property(nonatomic) CGFloat damping

    Обсуждение

    Это свойство моделирует эффект жидкостного трения или сопротивления воздуха на организации. Коэффициент затухания 0.0 не указывает потери в скорости и коэффициента затухания 1.0 препятствует тому, чтобы переместилась организация. Коэффициент затухания по умолчанию 0.1.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • angularDamping angularDamping Свойство

    Фактор, сокращающий угловую скорость организации.

    Объявление

    Swift

    var angularDamping: CGFloat

    Objective C

    @property(nonatomic) CGFloat angularDamping

    Обсуждение

    Это свойство моделирует эффект вращательного трения на организации. Коэффициент затухания 0.0 не указывает потери в угловой скорости и коэффициента затухания 1.0 препятствует тому, чтобы вращалась организация. Коэффициент затухания по умолчанию 0.1.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • categoryBitMask categoryBitMask Свойство

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

    Объявление

    Swift

    var categoryBitMask: Int

    Objective C

    @property(nonatomic, assign) NSUInteger categoryBitMask

    Обсуждение

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

    Значение по умолчанию SCNPhysicsCollisionCategoryStatic для статических организаций и SCNPhysicsCollisionCategoryDefault для динамических и кинематических организаций.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var collisionBitMask: Int

    Objective C

    @property(nonatomic, assign) NSUInteger collisionBitMask

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    func applyForce(_ direction: SCNVector3, impulse impulse: Bool)

    Objective C

    - (void)applyForce:(SCNVector3)direction impulse:(BOOL)impulse

    Параметры

    direction

    Направление и величина силы (в ньютонах) или импульса (в секундах ньютона).

    impulse

    YEStrue применять мгновенное изменение в импульсе; NOfalse применять силу, влияющую на организацию в конце шага моделирования.

    Обсуждение

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

    impulse параметр определяет, как этот метод способствует моделированию физики:

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

    • Если Вы указываете NOfalse, SceneKit обрабатывает direction параметр как сила, измеренная в ньютонах. В конце каждого шага моделирования (по умолчанию, шаг происходит один раз для каждого кадра в цикле рендеринга), SceneKit суммирует все силы, применился к организации физики во время того шага и ускоряет организацию согласно результирующему эффекту тех сил. Используйте эту опцию, когда Вы захотите моделировать непрерывные силы на организации путем вызова applyForce:impulse: на каждом шаге моделирования.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    – clearAllForces

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

    Объявление

    Swift

    func applyForce(_ direction: SCNVector3, atPosition position: SCNVector3, impulse impulse: Bool)

    Objective C

    - (void)applyForce:(SCNVector3)direction atPosition:(SCNVector3)position impulse:(BOOL)impulse

    Параметры

    direction

    Направление и величина силы (в ньютонах) или импульса (в секундах ньютона).

    position

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

    impulse

    YEStrue применять мгновенное изменение в импульсе; NOfalse применять силу, влияющую на организацию в конце шага моделирования.

    Обсуждение

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

    impulse параметр определяет, как этот метод способствует моделированию физики:

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

    • Если Вы указываете NOfalse, SceneKit обрабатывает direction параметр как сила, измеренная в ньютонах. В конце каждого шага моделирования (по умолчанию, шаг происходит один раз для каждого кадра в цикле рендеринга), SceneKit суммирует все силы, применился к организации физики во время того шага и ускоряет организацию согласно результирующему эффекту тех сил. Используйте эту опцию, когда Вы захотите моделировать непрерывные силы на организации путем вызова applyForce:atPosition:impulse: на каждом шаге моделирования.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    – clearAllForces

  • Применяет сетевой крутящий момент или изменение в угловом моменте к организации.

    Объявление

    Swift

    func applyTorque(_ torque: SCNVector4, impulse impulse: Bool)

    Objective C

    - (void)applyTorque:(SCNVector4)torque impulse:(BOOL)impulse

    Параметры

    torque

    Направление и величина крутящего момента (в ньютон-метрах) или изменения углового момента (в секундах ньютон-метра).

    impulse

    YEStrue применять мгновенное изменение в угловом моменте; NOfalse применять крутящий момент, влияющий на организацию в конце шага моделирования.

    Обсуждение

    Применение крутящего момента к организации изменяет свою угловую скорость суммой, связанной с ее массой и формой, поворачивая его, не влияя на ее линейное ускорение. Каждый компонент вектора крутящего момента касается вращения вокруг соответствующей оси в системе локальной координаты SCNNode объект, содержащий организацию физики. Например, применяя крутящий момент {0.0, 0.0, 1.0} заставляет узел вращаться против часовой стрелки вокруг его оси z.

    impulse параметр определяет, как этот метод способствует моделированию физики:

    • Если Вы указываете YEStrue, SceneKit обрабатывает direction параметр как мгновенное изменение в угловом моменте, измеренном в секундах ньютон-метра.

    • Если Вы указываете NOfalse, SceneKit обрабатывает direction параметр как крутящий момент, измеренный в ньютон-метрах. В конце каждого шага моделирования (по умолчанию, шаг происходит один раз для каждого кадра в цикле рендеринга), SceneKit суммирует все силы и закручивает, применился к организации физики во время того шага и ускоряет организацию согласно результирующему эффекту тех сил и крутящих моментов. Используйте эту опцию, когда Вы захотите моделировать постепенное ускорение путем вызова applyTorque:impulse: на каждом шаге моделирования.

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    – clearAllForces

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

    Объявление

    Swift

    func clearAllForces()

    Objective C

    - (void)clearAllForces

    Обсуждение

    Когда Вы передаете NOfalse для impulse параметр в applyForce:impulse:, applyForce:atPosition:impulse:, или applyTorque:impulse: метод, SceneKit ожидает до конца текущего шага моделирования прежде, чем применить его эффект. В то время SceneKit суммирует все силы и закручивает примененный во время того шага моделирования и изменяет скорость или угловую скорость организации согласно результирующему эффекту тех сил и крутящих моментов.

    Вызвать clearAllForces отменять любые силы и крутящие моменты ранее применялось во время текущего шага моделирования.

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    var velocity: SCNVector3

    Objective C

    @property(nonatomic) SCNVector3 velocity

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • angularVelocity angularVelocity Свойство

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

    Объявление

    Swift

    var angularVelocity: SCNVector4

    Objective C

    @property(nonatomic) SCNVector4 angularVelocity

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

  • isResting isResting Свойство

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

    Объявление

    Swift

    var isResting: Bool { get }

    Objective C

    @property(nonatomic, readonly) BOOL isResting

    Обсуждение

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

    См. также

    allowsResting

  • allowsResting allowsResting Свойство

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

    Объявление

    Swift

    var allowsResting: Bool

    Objective C

    @property(nonatomic) BOOL allowsResting

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    func resetTransform()

    Objective C

    - (void)resetTransform

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    enum SCNPhysicsBodyType : Int { case Static case Dynamic case Kinematic }

    Objective C

    typedef enum : NSInteger { SCNPhysicsBodyTypeStatic, SCNPhysicsBodyTypeDynamic, SCNPhysicsBodyTypeKinematic } SCNPhysicsBodyType

    Константы

    • Static

      SCNPhysicsBodyTypeStatic

      Организация физики, которая незатронута силами или коллизиями и не может переместиться.

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

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

    • Dynamic

      SCNPhysicsBodyTypeDynamic

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

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

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

    • Kinematic

      SCNPhysicsBodyTypeKinematic

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

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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

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

    Объявление

    Swift

    struct SCNPhysicsCollisionCategory : RawOptionSetType { init(_ rawValue: UInt) init(rawValue rawValue: UInt) static var Default: SCNPhysicsCollisionCategory { get } static var Static: SCNPhysicsCollisionCategory { get } static var All: SCNPhysicsCollisionCategory { get } }

    Objective C

    typedef enum : NSUInteger { SCNPhysicsCollisionCategoryDefault = 1 << 0, SCNPhysicsCollisionCategoryStatic = 1 << 1, SCNPhysicsCollisionCategoryAll = ~UL } SCNPhysicsCollisionCategory

    Константы

    • Default

      SCNPhysicsCollisionCategoryDefault

      Значение по умолчанию categoryBitMask значение для динамических и кинематических организаций.

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

    • Static

      SCNPhysicsCollisionCategoryStatic

      Значение по умолчанию categoryBitMask значение для статических организаций.

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

    • All

      SCNPhysicsCollisionCategoryAll

      Это - значение по умолчанию для организации физики collisionBitMask свойство.

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

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

    Обсуждение

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

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

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

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

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