SCNPhysicsBody
SCNPhysicsBody
объект используется для добавления моделирования физики к узлу. Когда SceneKit подготавливает представлять новый кадр, он выполняет вычисления физики на организациях физики, присоединенных к узлам в сцене. Эти вычисления включают силу тяжести, трение и коллизии с другими организациями. Можно также применить собственные силы и импульсы к организации. После того, как SceneKit завершает эти вычисления, он обновляет позиции и ориентации объектов узла прежде, чем представить кадр.
Для добавления физики к узлу создайте и сконфигурируйте SCNPhysicsBody
возразите и затем присвойте его physicsBody
свойство SCNNode
объект. Организация физики должна быть связана с объектом узла перед применением сил или импульсов к ней.
Физические характеристики организации
SCNPhysicsBody
класс определяет физические характеристики для организации, когда это моделируется сценой. Три свойства являются самыми важными для моделирования физики:
type
свойство, определяющее, как организация взаимодействует с силами и другими организациями на моделировании. Статические организации незатронуты силами и коллизиями и не могут переместиться. Динамические организации затронуты силами и коллизиями с другими основными шрифтами. Кинематические организации не затронуты силами или коллизиями, но путем перемещения их непосредственно можно вызвать коллизии, влияющие на динамические организации.physicsShape
свойство, определяющее трехмерную форму организации в целях обнаружения коллизий. Моделирования физики, выполненные быстрее при использовании простых форм вместо мелких деталей видимой геометрии узла. Как правило, Вы устанавливаете форму физики организации в ограничительную рамку, сферу или примитивную форму, примерно соответствующую видимое содержание ее узла. Для получения дополнительной информации при создании форм физики, посмотрите Ссылку класса SCNPhysicsShape.mass
свойство. Применение силы или крутящего момента к динамической организации приводит к ускорению (или угловое ускорение) пропорциональный его массе.
Все значения на моделировании физики SceneKit используют Международную систему единиц (SI): модуль массы является килограммом; модули силы, импульса и крутящего момента являются ньютоном, вторым ньютоном, и ньютон-метр; и модуль расстояния для позиций узла и размеров является метром. Обратите внимание на то, что Вы не должны пытаться обеспечить, реалистические значения для физических количеств — используют любые значения, производят поведение или геймплей, который Вы ищете.
Для динамической организации можно управлять, как организация затронута силами или коллизиями. Посмотрите Определение Как Влияние Сил Организация Физики.
Определение категории и коллизий организации
Когда Вы разрабатываете игру, использующую физику, Вы определяете различные категории объектов физики, появляющихся в сцене. Вы определяете различные категории организаций физики для способов поведения Ваш хотеть для Вашего приложения. Организация может быть присвоена стольким из этих категорий, сколько Вы хотите. В дополнение к объявлению его собственных категорий организация физики также объявляет, с какими категориями организаций это взаимодействует.
Используйте categoryBitMask
и collisionBitMask
свойства для определения поведения коллизии объекта. Константы, перечисленные в SCNPhysicsCollisionCategory
обеспечьте значения по умолчанию для этих свойств.
Связанные классы физики
Поля физики создают силы, влияющие на все организации в области, такие как вихри и гравитационная привлекательность. Для получения дополнительной информации и список типов доступного поля, посмотрите Ссылку класса SCNPhysicsField.
Можно добавить высокоуровневые способы поведения, управляющие взаимодействиями между многократными организациями, такими как соединения и вертевшие механизмы. Для получения дополнительной информации и список доступных способов поведения, посмотрите Ссылку класса SCNPhysicsBehavior.
Сцена physicsWorld
свойство содержит SCNPhysicsWorld
объект, управляющий характеристиками физики, влияющими на всю сцену.
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
NSCopying
-
NSObject
-
NSSecureCoding
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.10 и позже.
-
Создает организацию физики с указанным типом и формой.
Объявление
Swift
convenience init(type
type
: SCNPhysicsBodyType, shapeshape
: 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 и позже.
См. также
-
Создает организацию физики, которая незатронута силами или коллизиями, и это не может переместиться.
Объявление
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 и позже.
-
Масса организации, в килограммах.
Обсуждение
Масса организации влияет на свой импульс и как она реагирует на силы. Масса по умолчанию для динамических организаций
1.0
. Масса по умолчанию для статических и кинематических организаций0.0
, но эти организации незатронуты массой.Обратите внимание на то, что Вы не должны использовать реалистические измерения для организаций в Вашем приложении — эффекты моделирования физики зависят от относительных масс различных организаций, не абсолютных значений. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Электрический заряд организации, в кулонах.
Обсуждение
Заряд организации определяет свое поведение, когда затронуто электрическим или магнитным полем. Используйте
SCNPhysicsField
класс для добавления этих полей к сцене. Организации с положительными или отрицательными зарядами ведут себя по-другому, когда затронуто электрическими или магнитными полями. Электрический заряд по умолчанию на организации физики0.0
, то, чтобы заставлять его быть незатронутым электрическими и магнитными полями.Обратите внимание на то, что Вы не должны использовать реалистические измерения для организаций в Вашем приложении — эффекты моделирования физики зависят от относительных масс различных организаций, не абсолютных значений. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Сопротивление организации скользящему движению.
Обсуждение
Это свойство моделирует шероховатость поверхности организации. Когда две организации находятся в контакте, и сила применяется, который заставил бы их скользить против друг друга, значения трения для обеих организаций определяют свое сопротивление для движений. Если значение трения обеих организаций
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 и позже.
-
реституция реституция
СвойствоФактор, определяющий, сколько кинетической энергии организация теряет или получает в коллизиях.
Обсуждение
Это свойство моделирует «пружинистость» организации. Реституция
1.0
средние значения, что организация не теряет энергии в коллизии — например, шар, отброшенный на плоскую поверхность, придут в норму к высоте, от которой она упала. Реституция0.0
означает, что организация не возвращается после коллизии. Реституция больших, чем1.0
заставляет организацию получать энергию в коллизиях. Реституция по умолчанию0.5
.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Фактор, сокращающий линейную скорость организации.
Обсуждение
Это свойство моделирует эффект жидкостного трения или сопротивления воздуха на организации. Коэффициент затухания
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 и позже.
-
collisionBitMask collisionBitMask
СвойствоМаска, определяющая, какие категории организаций физики могут столкнуться с этой организацией физики.
Объявление
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, impulseimpulse
: Bool)Objective C
- (void)applyForce:(SCNVector3)
direction
impulse:(BOOL)impulse
Параметры
direction
Направление и величина силы (в ньютонах) или импульса (в секундах ньютона).
impulse
YES
true
применять мгновенное изменение в импульсе;NO
false
применять силу, влияющую на организацию в конце шага моделирования.Обсуждение
Применение силы или импульса к организации передает линейное ускорение, пропорциональное его массе.
impulse
параметр определяет, как этот метод способствует моделированию физики:Если Вы указываете
YES
true
, SceneKit обрабатываетdirection
параметр как импульс, измеренный в секундах ньютона, и, сразу ускоряет организацию физики. Используйте эту опцию моделировать мгновенные эффекты, такие как запуск снаряда.Если Вы указываете
NO
false
, SceneKit обрабатываетdirection
параметр как сила, измеренная в ньютонах. В конце каждого шага моделирования (по умолчанию, шаг происходит один раз для каждого кадра в цикле рендеринга), SceneKit суммирует все силы, применился к организации физики во время того шага и ускоряет организацию согласно результирующему эффекту тех сил. Используйте эту опцию, когда Вы захотите моделировать непрерывные силы на организации путем вызоваapplyForce:impulse:
на каждом шаге моделирования.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Применяет силу или импульс к организации в отдельном моменте.
Объявление
Swift
func applyForce(_
direction
: SCNVector3, atPositionposition
: SCNVector3, impulseimpulse
: Bool)Objective C
- (void)applyForce:(SCNVector3)
direction
atPosition:(SCNVector3)position
impulse:(BOOL)impulse
Параметры
direction
Направление и величина силы (в ньютонах) или импульса (в секундах ньютона).
position
Точка на организации, где сила или импульс должны быть применены в системе локальной координаты
SCNNode
объект, содержащий организацию физики.impulse
YES
true
применять мгновенное изменение в импульсе;NO
false
применять силу, влияющую на организацию в конце шага моделирования.Обсуждение
Применение силы или импульса к организации в позиции кроме ее центра массы может передать и линейное и угловое ускорение, в зависимости от того, как организация расположена в мире физики и других силах, реагирующих на него.
impulse
параметр определяет, как этот метод способствует моделированию физики:Если Вы указываете
YES
true
, SceneKit обрабатываетdirection
параметр как импульс, измеренный в секундах ньютона, и, сразу ускоряет организацию физики. Используйте эту опцию моделировать мгновенные эффекты, такие как запуск снаряда.Если Вы указываете
NO
false
, SceneKit обрабатываетdirection
параметр как сила, измеренная в ньютонах. В конце каждого шага моделирования (по умолчанию, шаг происходит один раз для каждого кадра в цикле рендеринга), SceneKit суммирует все силы, применился к организации физики во время того шага и ускоряет организацию согласно результирующему эффекту тех сил. Используйте эту опцию, когда Вы захотите моделировать непрерывные силы на организации путем вызоваapplyForce:atPosition:impulse:
на каждом шаге моделирования.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Применяет сетевой крутящий момент или изменение в угловом моменте к организации.
Объявление
Swift
func applyTorque(_
torque
: SCNVector4, impulseimpulse
: Bool)Objective C
- (void)applyTorque:(SCNVector4)
torque
impulse:(BOOL)impulse
Параметры
torque
Направление и величина крутящего момента (в ньютон-метрах) или изменения углового момента (в секундах ньютон-метра).
impulse
YES
true
применять мгновенное изменение в угловом моменте;NO
false
применять крутящий момент, влияющий на организацию в конце шага моделирования.Обсуждение
Применение крутящего момента к организации изменяет свою угловую скорость суммой, связанной с ее массой и формой, поворачивая его, не влияя на ее линейное ускорение. Каждый компонент вектора крутящего момента касается вращения вокруг соответствующей оси в системе локальной координаты
SCNNode
объект, содержащий организацию физики. Например, применяя крутящий момент{0.0, 0.0, 1.0}
заставляет узел вращаться против часовой стрелки вокруг его оси z.impulse
параметр определяет, как этот метод способствует моделированию физики:Если Вы указываете
YES
true
, SceneKit обрабатываетdirection
параметр как мгновенное изменение в угловом моменте, измеренном в секундах ньютон-метра.Если Вы указываете
NO
false
, SceneKit обрабатываетdirection
параметр как крутящий момент, измеренный в ньютон-метрах. В конце каждого шага моделирования (по умолчанию, шаг происходит один раз для каждого кадра в цикле рендеринга), SceneKit суммирует все силы и закручивает, применился к организации физики во время того шага и ускоряет организацию согласно результирующему эффекту тех сил и крутящих моментов. Используйте эту опцию, когда Вы захотите моделировать постепенное ускорение путем вызоваapplyTorque:impulse:
на каждом шаге моделирования.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистическую силу и измерения крутящего момента в Вашем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
Отмены все непрерывные силы и крутящие моменты, действующие на организацию физики во время текущего шага моделирования.
Объявление
Swift
func clearAllForces()
Objective C
- (void)clearAllForces
Обсуждение
Когда Вы передаете
NO
false
дляimpulse
параметр вapplyForce:impulse:
,applyForce:atPosition:impulse:
, илиapplyTorque:impulse:
метод, SceneKit ожидает до конца текущего шага моделирования прежде, чем применить его эффект. В то время SceneKit суммирует все силы и закручивает примененный во время того шага моделирования и изменяет скорость или угловую скорость организации согласно результирующему эффекту тех сил и крутящих моментов.Вызвать
clearAllForces
отменять любые силы и крутящие моменты ранее применялось во время текущего шага моделирования.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Вектор, описывающий обоих текущая скорость (в метрах в секунду) и направление движения организации физики.
Обсуждение
Моделирование физики 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 и позже.
-
Булево значение, указывающее, является ли организация физики в покое. (только для чтения)
Объявление
Swift
var isResting: Bool { get }
Objective C
@property(nonatomic, readonly) BOOL isResting
Обсуждение
Значение по умолчанию этого свойства
NO
false
, но моделирование физики SceneKit может автоматически установить его вYES
true
если организация не перемещается и не затронутая никакими силами. Покоящаяся организация не участвует в моделировании, пока другая организация не сталкивается с ним, или Вы меняете ее положение или скорость или применяете силу к ней.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
См. также
-
allowsResting allowsResting
СвойствоБулево значение, указывающее, может ли SceneKit автоматически отметить организацию физики в покое.
Объявление
Swift
var allowsResting: Bool
Objective C
@property(nonatomic) BOOL allowsResting
Обсуждение
Если
YES
true
(значение по умолчанию), SceneKit отслеживает то, перемещается ли организация или затронутая силами, автоматически устанавливаяisResting
свойство кYES
true
когда это «в покое». Моделирование физики работает быстрее при моделировании меньшего количества организаций, таким образом обрабатывая организацию, поскольку покоящийся временно удаляет его из моделирования для улучшения производительности.SceneKit автоматически возвращает покоящуюся организацию моделированию, если другая организация сталкивается с ним, если Вы меняете ее положение или скорость, или если Вы применяете силу к нему. Однако SceneKit использует более быстрое, менее точное моделирование при решении, изменить ли организацию
isResting
свойство назад кNO
false
. Если тестирование Вашего приложения показывает неожиданные организации отдыха включения способов поведения физики, изменяя allowsResting свойство тех организаций наNO
false
может улучшить точность моделирования.Оператор импорта
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(rawValuerawValue
: 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 и позже.
-