SCNPhysicsVehicle
SCNPhysicsVehicle
объект изменяет моделирование SceneKit организации физики так, чтобы это вело себя как автомобиль, мотоцикл или другой колесный механизм.
Для создания механизма определяйте организацию физики как ее шасси и массив SCNPhysicsVehicleWheel
объекты как его колеса. Для каждого колеса Вы определяете физические характеристики, такие как приостановка и тяга, и связываете узел в Вашей сцене для обеспечения размера колеса и визуального представления. После построения механизма можно управлять им с точки зрения ускорения, торможения и регулирования.
Несмотря на то, что также возможно использовать ряд организаций физики и соединений для коллективного моделирования колесного механизма, SCNPhysicsVehicle
класс реализует высокоуровневое моделирование, предоставляющее реалистическому поведению механизма более эффективную производительность моделирования.
Наследование
-
NSObject
-
SCNPhysicsBehavior
-
SCNPhysicsVehicle
-
NSObject
-
SCNPhysicsBehavior
-
SCNPhysicsVehicle
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
NSObject
-
NSSecureCoding
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.10 и позже.
-
Создает поведение механизма.
Объявление
Swift
convenience init(chassisBody
chassisBody
: SCNPhysicsBody!, wheelswheels
: [AnyObject])Objective C
+ (instancetype)vehicleWithChassisBody:(SCNPhysicsBody *)
chassisBody
wheels:(NSArray *)wheels
Параметры
chassisBody
Организация физики для служения в качестве шасси механизма.
wheels
Массив
SCNPhysicsVehicleWheel
объекты, представляющие колеса механизма. Механизм должен иметь по крайней мере одно колесо.Возвращаемое значение
Новое поведение механизма.
Обсуждение
Каждый объект в
wheels
выстройте связывает узел с колесом для служения в качестве его визуального представления и определяет свойства для физических характеристик колеса. Каждый объект колеса должен сослаться на уникальный узел, который должен быть дочерним элементом узла, содержащего организацию физики, используемую для шасси механизма. Как правило, Вы загружаете иерархию узла, представляющую механизм и все его колеса от файла сцены, и затем определяете, какие узлы служат организацией и колесами.Для поведения вступить в силу, необходимо добавить его к моделированию физики путем вызова
addBehavior:
метод на Вашей сценеSCNPhysicsWorld
объект.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
chassisBody chassisBody
СвойствоОрганизация физики, представляющая шасси механизма. (только для чтения)
Объявление
Swift
var chassisBody: SCNPhysicsBody! { get }
Objective C
@property(nonatomic, readonly) SCNPhysicsBody *chassisBody
Обсуждение
Шасси механизма должно быть динамической организацией.
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Массив
SCNPhysicsVehicleWheel
объекты, представляющие колеса механизма. (только для чтения)Объявление
Swift
var wheels: [AnyObject]! { get }
Objective C
@property(nonatomic, readonly) NSArray *wheels
Обсуждение
Можно динамично изменить приостановку и свойства тяги колеса, подключенного к механизму при помощи соответствия
SCNPhysicsVehicleWheel
возразите или при помощи кодирования значения ключа с keypath формыwheels[index].propertyName
. Например, следующий код изменяет размер первого колеса, присоединенного к механизму, моделируя неработающую шину:Swift
let vehicle = SCNPhysicsVehicle(chassisBody: car, wheels: wheels)
vehicle.setValue(0.1, forKeyPath: "wheels[0].radius")
Objective C
SCNPhysicsVehicle *vehicle = [SCNPhysicsVehicle vehicleWithChassisBody:car wheels:wheels];
[vehicle setValue:@0.1 forKeyPath:@"wheels[0].radius"];
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Применяет силу между указанным колесом и землей под механизмом.
Объявление
Swift
func applyEngineForce(_
value
: CGFloat, forWheelAtIndexindex
: Int)Параметры
value
Величина силы, в ньютонах.
index
Индекс колеса, применяющего силу.
Обсуждение
Применение положительной силы крутит колесо в направлении, которое переместило бы механизм вперед; применение отрицательной силы перемещает механизм наоборот.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Вызов этого метода применяет силу для одного шага (или кадр) моделирования физики. Для непрерывного ускорения механизма вызовите этот метод снова на subequent шагах моделирования (например, от делегата средства рендеринга сцены
renderer:updateAtTime:
метод), пока механизм не достигает Вашей желаемой скорости.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Применяет силу между указанным колесом и землей под механизмом.
Объявление
Swift
func applyBrakingForce(_
value
: CGFloat, forWheelAtIndexindex
: Int)Параметры
value
Величина крутящего момента, в ньютон-метрах.
index
Индекс колеса, применяющего силу.
Обсуждение
Применение тормозящего усилия заставляет колесо замедляться независимо от направления, в котором это в настоящее время вращается.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Вызов этого метода применяет тормозящее усилие для одного шага (или кадр) моделирования физики. Для непрерывного замедления механизма вызовите этот метод снова на subequent шагах моделирования (например, от делегата средства рендеринга сцены
renderer:updateAtTime:
метод), пока механизм не останавливает или достигает Вашей желаемой скорости.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Вертится указанное колесо вокруг его руководящей оси.
Объявление
Swift
func setSteeringAngle(_
value
: CGFloat, forWheelAtIndexindex
: Int)Параметры
value
Угол для установки колеса в относительно его руководящей оси, в радианах.
index
Индекс, в механизме
wheels
массив, колеса, которое будет вертеться.Обсуждение
Углы поворота относительно колеса
steeringAxis
вектор. С руководящей осью значения по умолчанию{0.0, -1.0, 0.0}
, угол поворота0.0
представляет нейтральное регулирование, положительные значения регулируют механизм вправо, и отрицательные величины держатся налево.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.
-
Скорость относительно земли механизма, в километрах в час. (только для чтения)
Объявление
Swift
var speedInKilometersPerHour: CGFloat { get }
Objective C
@property(nonatomic, readonly) CGFloat speedInKilometersPerHour
Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.