SCNPhysicsBody
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
NSSecureCoding -
Печатаемый -
NSCopying -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
SCNPhysicsBody объект используется для добавления моделирования физики к узлу. Когда SceneKit подготавливает представлять новый кадр, он выполняет вычисления физики на организациях физики, присоединенных к узлам в сцене. Эти вычисления включают силу тяжести, трение и коллизии с другими организациями. Можно также применить собственные силы и импульсы к организации. После того, как SceneKit завершает эти вычисления, он обновляет позиции и ориентации объектов узла прежде, чем представить кадр.
Для добавления физики к узлу создайте и сконфигурируйте SCNPhysicsBody возразите и затем присвойте его physicsBody свойство SCNNode объект. Организация физики должна быть связана с объектом узла перед применением сил или импульсов к ней.
Физические характеристики организации
SCNPhysicsBody класс определяет физические характеристики для организации, когда это моделируется сценой. Три свойства являются самыми важными для моделирования физики:
typeсвойство, определяющее, как организация взаимодействует с силами и другими организациями на моделировании. Статические организации незатронуты силами и коллизиями и не могут переместиться. Динамические организации затронуты силами и коллизиями с другими основными шрифтами. Кинематические организации не затронуты силами или коллизиями, но путем перемещения их непосредственно можно вызвать коллизии, влияющие на динамические организации.physicsShapeсвойство, определяющее трехмерную форму организации в целях обнаружения коллизий. Моделирования физики, выполненные быстрее при использовании простых форм вместо мелких деталей видимой геометрии узла. Как правило, Вы устанавливаете форму физики организации в ограничительную рамку, сферу или примитивную форму, примерно соответствующую видимое содержание ее узла. Для получения дополнительной информации при создании форм физики, посмотрите Ссылку класса SCNPhysicsShape.massсвойство. Применение силы или крутящего момента к динамической организации приводит к ускорению (или угловое ускорение) пропорциональный его массе.
Все значения на моделировании физики SceneKit используют Международную систему единиц (SI): модуль массы является килограммом; модули силы, импульса и крутящего момента являются ньютоном, вторым ньютоном, и ньютон-метр; и модуль расстояния для позиций узла и размеров является метром. Обратите внимание на то, что Вы не должны пытаться обеспечить, реалистические значения для физических количеств — используют любые значения, производят поведение или геймплей, который Вы ищете.
Для динамической организации можно управлять, как организация затронута силами или коллизиями. Посмотрите Определение Как Влияние Сил Организация Физики.
Определение категории и коллизий организации
Когда Вы разрабатываете игру, использующую физику, Вы определяете различные категории объектов физики, появляющихся в сцене. Вы определяете различные категории организаций физики для способов поведения Ваш хотеть для Вашего приложения. Организация может быть присвоена стольким из этих категорий, сколько Вы хотите. В дополнение к объявлению его собственных категорий организация физики также объявляет, с какими категориями организаций это взаимодействует.
Используйте categoryBitMask и collisionBitMask свойства для определения поведения коллизии объекта. Константы, перечисленные в SCNPhysicsCollisionCategory обеспечьте значения по умолчанию для этих свойств.
Связанные классы физики
Поля физики создают силы, влияющие на все организации в области, такие как вихри и гравитационная привлекательность. Для получения дополнительной информации и список типов доступного поля, посмотрите Ссылку класса SCNPhysicsField.
Можно добавить высокоуровневые способы поведения, управляющие взаимодействиями между многократными организациями, такими как соединения и вертевшие механизмы. Для получения дополнительной информации и список доступных способов поведения, посмотрите Ссылку класса SCNPhysicsBehavior.
Сцена physicsWorld свойство содержит SCNPhysicsWorld объект, управляющий характеристиками физики, влияющими на всю сцену.
-
Создает организацию физики с указанным типом и формой.
Объявление
Swift
convenience init(typetype: SCNPhysicsBodyType, shapeshape: SCNPhysicsShape?)Objective C
+ (instancetype)bodyWithType:(SCNPhysicsBodyType)typeshape:(SCNPhysicsShape *)shapeПараметры
typeКонстанта, определяющая, как организация реагирует на силы и коллизии. Посмотрите
SCNPhysicsBodyType.shapeФорма физики, определяющая объем организации в целях обнаружения коллизий.
Возвращаемое значение
Новый объект организации физики.
Обсуждение
Для организации, чтобы участвовать в обнаружении коллизий или реагировать на силы, необходимо присоединить его к
physicsBodyсвойствоSCNNodeобъект в сцене.Если Вы передаете
nilдля параметра формы SceneKit автоматически создает форму физики для организации при присоединении его к узлу, на основе того узлаgeometryсвойство. Для создания физики формируют, это основывается на конфигурациях узла и его иерархии дочерних элементов, или управлять уровнем детализации в форме физики, создать форму физики вручную с помощьюSCNPhysicsShapeметод класса.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Создает организацию физики, которая незатронута силами или коллизиями, и это не может переместиться.
Объявление
Swift
class func staticBody() -> SelfObjective C
+ (instancetype)staticBodyВозвращаемое значение
Новый объект организации физики.
Обсуждение
Используйте статические организации для построения приспособлений в сцене, что другие организации должны столкнуться с, но которые самостоятельно не перемещаются, такие как этажи, стены и ландшафт.
Для организации, чтобы участвовать в обнаружении коллизий или реагировать на силы, необходимо присоединить его к
physicsBodyсвойствоSCNNodeобъект в сцене.SceneKit автоматически создает форму физики для организации при присоединении его к узлу, на основе того узла
geometryсвойство. Для создания физики формируют, это основывается на конфигурациях узла и его иерархии дочерних элементов, или управлять уровнем детализации в форме физики, создать форму физики вручную с помощьюSCNPhysicsShapeметод класса.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает организацию физики, которая может быть затронута силами и коллизиями.
Объявление
Swift
class func dynamicBody() -> SelfObjective C
+ (instancetype)dynamicBodyВозвращаемое значение
Новый объект организации физики.
Обсуждение
Используйте динамические организации для элементов Вашей сцены, перемещенных моделированием физики.
Для организации, чтобы участвовать в обнаружении коллизий или реагировать на силы, необходимо присоединить его к
physicsBodyсвойствоSCNNodeобъект в сцене.SceneKit автоматически создает форму физики для организации при присоединении его к узлу, на основе того узла
geometryсвойство. Для создания физики формируют, это основывается на конфигурациях узла и его иерархии дочерних элементов, или управлять уровнем детализации в форме физики, создать форму физики вручную с помощьюSCNPhysicsShapeметод класса.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает организацию физики, которая незатронута силами или коллизиями, но это может вызвать коллизии, влияющие на другие организации, когда перемещено.
Объявление
Swift
class func kinematicBody() -> SelfObjective C
+ (instancetype)kinematicBodyВозвращаемое значение
Новый объект организации физики.
Обсуждение
Используйте кинематические организации для элементов сцены, которыми Вы хотите управлять непосредственно, но чье перемещение управляет другими элементами. Например, чтобы позволить пользователю третировать объекты с пальцем, Вы могли бы создать кинематическую организацию и присоединить его к невидимому узлу, который Вы перемещаете, следуют за сенсорными событиями. (На OS X используйте тот же метод, чтобы позволить пользователю перемещать объекты с указателем мыши.)
Для организации, чтобы участвовать в обнаружении коллизий или реагировать на силы, необходимо присоединить его к
physicsBodyсвойствоSCNNodeобъект в сцене.SceneKit автоматически создает форму физики для организации при присоединении его к узлу, на основе того узла
geometryсвойство. Для создания физики формируют, это основывается на конфигурациях узла и его иерархии дочерних элементов, или управлять уровнем детализации в форме физики, создать форму физики вручную с помощьюSCNPhysicsShapeметод класса.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
physicsShapeСвойствоОбъект, определяющий существенный объем организации физики для использования в обнаружении коллизий.
Объявление
Swift
var physicsShape: SCNPhysicsShape?Objective C
@property(nonatomic, retain) SCNPhysicsShape *physicsShapeОбсуждение
Моделирование физики не использует видимую геометрию узла для обнаружения коллизий — моделирование может работать быстрее при использовании простых форм, и может также быть полезно разработать Ваше приложение или игру с помощью невидимых форм коллизии для некоторых элементов. Как правило, Вы устанавливаете форму физики организации в ограничительную рамку или примитивную форму, примерно соответствующую видимое содержание ее узла, но можно использовать более подробную форму для более точного обнаружения коллизий по стоимости для производительности.
Для получения дополнительной информации при создании форм физики, посмотрите Ссылку класса SCNPhysicsShape.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
typeСвойствоКонстанта, определяющая, как организация физики реагирует на силы и коллизии.
Объявление
Swift
var type: SCNPhysicsBodyTypeObjective C
@property(nonatomic) SCNPhysicsBodyType typeОбсуждение
Посмотрите
SCNPhysicsBodyType.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
velocityFactorСвойствоВлияние множителя, как SceneKit применяет переводы, вычисленные моделированием физики к узлу, содержащему организацию физики.
Объявление
Swift
var velocityFactor: SCNVector3Objective C
@property(nonatomic) SCNVector3 velocityFactorОбсуждение
Используйте это свойство, чтобы ограничить или ограничить эффект моделирования физики на узле, содержащем организацию физики. Например, можно вынудить организацию переместиться только в две размерности путем установки ее скоростного фактора в
{1.0, 1.0, 0.0}.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
angularVelocityFactorСвойствоВлияние множителя, как SceneKit применяет вращения, вычисленные моделированием физики к узлу, содержащему организацию физики.
Объявление
Swift
var angularVelocityFactor: SCNVector3Objective C
@property(nonatomic) SCNVector3 angularVelocityFactorОбсуждение
Используйте это свойство, чтобы ограничить или ограничить эффект моделирования физики на узле, содержащем организацию физики. Например, можно вынудить организацию вращаться только в одной оси путем установки ее фактора угловой скорости в
{0.0, 1.0, 0.0}.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
massСвойствоМасса организации, в килограммах.
Обсуждение
Масса организации влияет на свой импульс и как она реагирует на силы. Масса по умолчанию для динамических организаций
1.0. Масса по умолчанию для статических и кинематических организаций0.0, но эти организации незатронуты массой.Обратите внимание на то, что Вы не должны использовать реалистические измерения для организаций в Вашем приложении — эффекты моделирования физики зависят от относительных масс различных организаций, не абсолютных значений. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
chargeСвойствоЭлектрический заряд организации, в кулонах.
Обсуждение
Заряд организации определяет свое поведение, когда затронуто электрическим или магнитным полем. Используйте
SCNPhysicsFieldкласс для добавления этих полей к сцене. Организации с положительными или отрицательными зарядами ведут себя по-другому, когда затронуто электрическими или магнитными полями. Электрический заряд по умолчанию на организации физики0.0, то, чтобы заставлять его быть незатронутым электрическими и магнитными полями.Обратите внимание на то, что Вы не должны использовать реалистические измерения для организаций в Вашем приложении — эффекты моделирования физики зависят от относительных масс различных организаций, не абсолютных значений. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
frictionСвойствоСопротивление организации скользящему движению.
Обсуждение
Это свойство моделирует шероховатость поверхности организации. Когда две организации находятся в контакте, и сила применяется, который заставил бы их скользить против друг друга, значения трения для обеих организаций определяют свое сопротивление для движений. Если значение трения обеих организаций
0.0, они скользят свободно друг против друга. Если значение трения обеих организаций1.0, они не скользят вообще. Трение по умолчанию0.5.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
rollingFrictionСвойствоСопротивление организации прокручивающемуся движению.
Объявление
Swift
var rollingFriction: CGFloatObjective C
@property(nonatomic) CGFloat rollingFrictionОбсуждение
Это свойство моделирует тягу между округленной организацией и организациями, против которых это могло бы прокрутиться. Трение качения
0.0(значение по умолчанию), означает, что организация вызвала для прокрутки (например, будучи помещенным в наклоненную поверхность) будет продолжать прокручиваться, не замедляясь, если иначе не реагируется, и трение качения1.0препятствует тому, чтобы прокрутилась организация.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
restitutionСвойствоФактор, определяющий, сколько кинетической энергии организация теряет или получает в коллизиях.
Обсуждение
Это свойство моделирует «пружинистость» организации. Реституция
1.0средние значения, что организация не теряет энергии в коллизии — например, шар, отброшенный на плоскую поверхность, придут в норму к высоте, от которой она упала. Реституция0.0означает, что организация не возвращается после коллизии. Реституция больших, чем1.0заставляет организацию получать энергию в коллизиях. Реституция по умолчанию0.5.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
dampingСвойствоФактор, сокращающий линейную скорость организации.
Обсуждение
Это свойство моделирует эффект жидкостного трения или сопротивления воздуха на организации. Коэффициент затухания
0.0не указывает потери в скорости и коэффициента затухания1.0препятствует тому, чтобы переместилась организация. Коэффициент затухания по умолчанию0.1.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
angularDampingСвойствоФактор, сокращающий угловую скорость организации.
Объявление
Swift
var angularDamping: CGFloatObjective C
@property(nonatomic) CGFloat angularDampingОбсуждение
Это свойство моделирует эффект вращательного трения на организации. Коэффициент затухания
0.0не указывает потери в угловой скорости и коэффициента затухания1.0препятствует тому, чтобы вращалась организация. Коэффициент затухания по умолчанию0.1.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
categoryBitMaskСвойствоМаска, определяющая, которому принадлежат категории эта организация физики.
Объявление
Swift
var categoryBitMask: IntObjective C
@property(nonatomic, assign) NSUInteger categoryBitMaskОбсуждение
Каждая организация физики в сцене может быть присвоена одной или более категориям, каждый соответствующий немного в битовой маске. Вы определяете значения маски, используемые в Вашей игре. Используйте это свойство вместе с
collisionBitMaskсвойство для определения, какие организации физики взаимодействуют друг с другом и когда игра уведомляется относительно этих взаимодействий.Значение по умолчанию
SCNPhysicsCollisionCategoryStaticдля статических организаций иSCNPhysicsCollisionCategoryDefaultдля динамических и кинематических организаций.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
collisionBitMaskСвойствоМаска, определяющая, какие категории организаций физики могут столкнуться с этой организацией физики.
Объявление
Swift
var collisionBitMask: IntObjective C
@property(nonatomic, assign) NSUInteger collisionBitMaskОбсуждение
Когда две организации физики связываются друг с другом, коллизия может произойти. SceneKit сравнивает маску коллизии организации с маской категории другой организации путем выполнения поразрядной операции И. Если результатом является ненулевое значение, то организация затронута коллизией. Каждая организация независимо выбирает, хочет ли она быть затронутой другой организацией. Например, Вы могли бы принять решение избежать вычислений коллизии, которые внесут незначительные изменения в скорость организации.
Значение по умолчанию
SCNPhysicsCollisionCategoryAll(немного маски, каждый бит которой включен), указывая, что организация столкнется с организациями всех других категорий.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Применяет силу или импульс к организации в ее центре массы.
Объявление
Swift
func applyForce(_direction: SCNVector3, impulseimpulse: Bool)Objective C
- (void)applyForce:(SCNVector3)directionimpulse:(BOOL)impulseПараметры
directionНаправление и величина силы (в ньютонах) или импульса (в секундах ньютона).
impulseYEStrueприменять мгновенное изменение в импульсе;NOfalseприменять силу, влияющую на организацию в конце шага моделирования.Обсуждение
Применение силы или импульса к организации передает линейное ускорение, пропорциональное его массе.
impulseпараметр определяет, как этот метод способствует моделированию физики:Если Вы указываете
YEStrue, SceneKit обрабатываетdirectionпараметр как импульс, измеренный в секундах ньютона, и, сразу ускоряет организацию физики. Используйте эту опцию моделировать мгновенные эффекты, такие как запуск снаряда.Если Вы указываете
NOfalse, SceneKit обрабатываетdirectionпараметр как сила, измеренная в ньютонах. В конце каждого шага моделирования (по умолчанию, шаг происходит один раз для каждого кадра в цикле рендеринга), SceneKit суммирует все силы, применился к организации физики во время того шага и ускоряет организацию согласно результирующему эффекту тех сил. Используйте эту опцию, когда Вы захотите моделировать непрерывные силы на организации путем вызоваapplyForce:impulse:на каждом шаге моделирования.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Применяет силу или импульс к организации в отдельном моменте.
Объявление
Swift
func applyForce(_direction: SCNVector3, atPositionposition: SCNVector3, impulseimpulse: Bool)Objective C
- (void)applyForce:(SCNVector3)directionatPosition:(SCNVector3)positionimpulse:(BOOL)impulseПараметры
directionНаправление и величина силы (в ньютонах) или импульса (в секундах ньютона).
positionТочка на организации, где сила или импульс должны быть применены в системе локальной координаты
SCNNodeобъект, содержащий организацию физики.impulseYEStrueприменять мгновенное изменение в импульсе;NOfalseприменять силу, влияющую на организацию в конце шага моделирования.Обсуждение
Применение силы или импульса к организации в позиции кроме ее центра массы может передать и линейное и угловое ускорение, в зависимости от того, как организация расположена в мире физики и других силах, реагирующих на него.
impulseпараметр определяет, как этот метод способствует моделированию физики:Если Вы указываете
YEStrue, SceneKit обрабатываетdirectionпараметр как импульс, измеренный в секундах ньютона, и, сразу ускоряет организацию физики. Используйте эту опцию моделировать мгновенные эффекты, такие как запуск снаряда.Если Вы указываете
NOfalse, SceneKit обрабатываетdirectionпараметр как сила, измеренная в ньютонах. В конце каждого шага моделирования (по умолчанию, шаг происходит один раз для каждого кадра в цикле рендеринга), SceneKit суммирует все силы, применился к организации физики во время того шага и ускоряет организацию согласно результирующему эффекту тех сил. Используйте эту опцию, когда Вы захотите моделировать непрерывные силы на организации путем вызоваapplyForce:atPosition:impulse:на каждом шаге моделирования.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
См. также
-
Применяет сетевой крутящий момент или изменение в угловом моменте к организации.
Объявление
Swift
func applyTorque(_torque: SCNVector4, impulseimpulse: Bool)Objective C
- (void)applyTorque:(SCNVector4)torqueimpulse:(BOOL)impulseПараметры
torqueНаправление и величина крутящего момента (в ньютон-метрах) или изменения углового момента (в секундах ньютон-метра).
impulseYEStrueприменять мгновенное изменение в угловом моменте;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Доступность
Доступный в iOS 8.0 и позже.
См. также
-
Отмены все непрерывные силы и крутящие моменты, действующие на организацию физики во время текущего шага моделирования.
Объявление
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Доступность
Доступный в iOS 8.0 и позже.
-
velocityСвойствоВектор, описывающий обоих текущая скорость (в метрах в секунду) и направление движения организации физики.
Обсуждение
Моделирование физики SceneKit определяет скорость (и соответствующее изменение в позиции) каждой динамической организации физики в сцене. Можно также установить скорость организации непосредственно, чтобы привести моделирование физики в движение или влиять на его поведение.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
angularVelocityСвойствоВектор, описывающий и текущую ось вращения и скорость вращения (в радианах в секунду) организации физики.
Объявление
Swift
var angularVelocity: SCNVector4Objective C
@property(nonatomic) SCNVector4 angularVelocityОбсуждение
Положительная скорость вращения указывает против часовой стрелки вращение (когда просматривается от направления точки оси вращения в).
Моделирование физики SceneKit определяет угловую скорость (и соответствующее изменение попеременно) каждой динамической организации физики в сцене. Можно также установить скорость организации непосредственно, чтобы привести моделирование физики в движение или влиять на его поведение.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
isRestingСвойствоБулево значение, указывающее, является ли организация физики в покое. (только для чтения)
Объявление
Swift
var isResting: Bool { get }Objective C
@property(nonatomic, readonly) BOOL isRestingОбсуждение
Значение по умолчанию этого свойства
NOfalse, но моделирование физики SceneKit может автоматически установить его вYEStrueесли организация не перемещается и не затронутая никакими силами. Покоящаяся организация не участвует в моделировании, пока другая организация не сталкивается с ним, или Вы меняете ее положение или скорость или применяете силу к ней.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
См. также
-
allowsRestingСвойствоБулево значение, указывающее, может ли SceneKit автоматически отметить организацию физики в покое.
Объявление
Swift
var allowsResting: BoolObjective C
@property(nonatomic) BOOL allowsRestingОбсуждение
Если
YEStrue(значение по умолчанию), SceneKit отслеживает то, перемещается ли организация или затронутая силами, автоматически устанавливаяisRestingсвойство кYEStrueкогда это «в покое». Моделирование физики работает быстрее при моделировании меньшего количества организаций, таким образом обрабатывая организацию, поскольку покоящийся временно удаляет его из моделирования для улучшения производительности.SceneKit автоматически возвращает покоящуюся организацию моделированию, если другая организация сталкивается с ним, если Вы меняете ее положение или скорость, или если Вы применяете силу к нему. Однако SceneKit использует более быстрое, менее точное моделирование при решении, изменить ли организацию
isRestingсвойство назад кNOfalse. Если тестирование Вашего приложения показывает неожиданные организации отдыха включения способов поведения физики, изменяя allowsResting свойство тех организаций наNOfalseможет улучшить точность моделирования.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Обновляет позицию и ориентацию организации на моделировании физики для соответствия того из узла, к которому присоединяется организация.
Объявление
Swift
func resetTransform()Objective C
- (void)resetTransformОбсуждение
Если Вы меняете положение или ориентацию узла с присоединенной статической или динамической организацией физики, вызовите этот метод позже, чтобы гарантировать, что моделирование физики включает изменение. Вы не должны вызывать этот метод для кинематических организаций.
Обратите внимание на то, что динамичный и организации физики разработаны, чтобы быть перемещенным только моделированием физики или нисколько. Можно использовать этот метод для перемещения их независимо от этого ограничения, но по стоимости для производительности.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Константы, определяющие, как организация физики взаимодействует с силами и другими организациями, используемыми
typeсвойство и при создании организации физики.Объявление
Swift
enum SCNPhysicsBodyType : Int { case Static case Dynamic case Kinematic }Objective C
typedef enum : NSInteger { SCNPhysicsBodyTypeStatic, SCNPhysicsBodyTypeDynamic, SCNPhysicsBodyTypeKinematic } SCNPhysicsBodyTypeКонстанты
-
StaticSCNPhysicsBodyTypeStaticОрганизация физики, которая незатронута силами или коллизиями и не может переместиться.
Используйте статические организации для построения приспособлений в сцене, что другие организации должны столкнуться с, но которые самостоятельно не перемещаются, такие как этажи, стены и ландшафт.
Доступный в iOS 8.0 и позже.
-
DynamicSCNPhysicsBodyTypeDynamicОрганизация физики, которая может быть затронута силами и коллизиями.
Используйте динамические организации для элементов Вашей сцены, перемещенных моделированием физики.
Доступный в iOS 8.0 и позже.
-
KinematicSCNPhysicsBodyTypeKinematicОрганизация физики, которая незатронута силами или коллизиями, но это может вызвать коллизии, влияющие на другие организации, когда перемещено.
Используйте кинематические организации для элементов сцены, которыми Вы хотите управлять непосредственно непосредственно, но чье перемещение управляет другими элементами. Например, чтобы позволить пользователю третировать объекты с пальцем, Вы могли бы создать кинематическую организацию и присоединить его к невидимому узлу, который Вы перемещаете для следования за сенсорными событиями. (На OS X используйте тот же метод, чтобы позволить пользователю перемещать объекты с указателем мыши.)
Доступный в iOS 8.0 и позже.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
-
Значения по умолчанию для организации физики
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Константы
-
DefaultSCNPhysicsCollisionCategoryDefaultЗначение по умолчанию
categoryBitMaskзначение для динамических и кинематических организаций.Доступный в iOS 8.0 и позже.
-
StaticSCNPhysicsCollisionCategoryStaticЗначение по умолчанию
categoryBitMaskзначение для статических организаций.Доступный в iOS 8.0 и позже.
-
AllSCNPhysicsCollisionCategoryAllЭто - значение по умолчанию для организации физики
collisionBitMaskсвойство.С этой маской коллизии организация физики может столкнуться со всеми другими организациями физики.
Доступный в iOS 8.0 и позже.
Обсуждение
Вы указываете контакт и способы поведения коллизии путем определения собственных категорий для видов организаций, которые приложение моделирует и установка
categoryBitMaskиcollisionBitMaskсвойства для каждой организации для определения, с какими видами организаций это сталкивается. Кроме того, можно использоватьcontactDelegateсвойство мира физики, который будет уведомлен относительно коллизий между организациями.Для получения дополнительной информации и использование в качестве примера, посмотрите Категории и Коллизии в обзоре класса.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
