SCNPhysicsVehicle
Наследование
-
NSObject -
SCNPhysicsBehavior -
SCNPhysicsVehicle
-
NSObject -
SCNPhysicsBehavior -
SCNPhysicsVehicle
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSObjectProtocol -
NSSecureCoding -
Печатаемый -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
SCNPhysicsVehicle объект изменяет моделирование SceneKit организации физики так, чтобы это вело себя как автомобиль, мотоцикл или другой колесный механизм.
Для создания механизма определяйте организацию физики как ее шасси и массив SCNPhysicsVehicleWheel объекты как его колеса. Для каждого колеса Вы определяете физические характеристики, такие как приостановка и тяга, и связываете узел в Вашей сцене для обеспечения размера колеса и визуального представления. После построения механизма можно управлять им с точки зрения ускорения, торможения и регулирования.
Несмотря на то, что также возможно использовать ряд организаций физики и соединений для коллективного моделирования колесного механизма, SCNPhysicsVehicle класс реализует высокоуровневое моделирование, предоставляющее реалистическому поведению механизма более эффективную производительность моделирования.
-
Создает поведение механизма.
Объявление
Swift
convenience init(chassisBodychassisBody: SCNPhysicsBody!, wheelswheels: [AnyObject])Objective C
+ (instancetype)vehicleWithChassisBody:(SCNPhysicsBody *)chassisBodywheels:(NSArray *)wheelsПараметры
chassisBodyОрганизация физики для служения в качестве шасси механизма.
wheelsМассив
SCNPhysicsVehicleWheelобъекты, представляющие колеса механизма. Механизм должен иметь по крайней мере одно колесо.Возвращаемое значение
Новое поведение механизма.
Обсуждение
Каждый объект в
wheelsвыстройте связывает узел с колесом для служения в качестве его визуального представления и определяет свойства для физических характеристик колеса. Каждый объект колеса должен сослаться на уникальный узел, который должен быть дочерним элементом узла, содержащего организацию физики, используемую для шасси механизма. Как правило, Вы загружаете иерархию узла, представляющую механизм и все его колеса от файла сцены, и затем определяете, какие узлы служат организацией и колесами.Для поведения вступить в силу, необходимо добавить его к моделированию физики путем вызова
addBehavior:метод на Вашей сценеSCNPhysicsWorldобъект.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
chassisBodyСвойствоОрганизация физики, представляющая шасси механизма. (только для чтения)
Объявление
Swift
var chassisBody: SCNPhysicsBody! { get }Objective C
@property(nonatomic, readonly) SCNPhysicsBody *chassisBodyОбсуждение
Шасси механизма должно быть динамической организацией.
Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
wheelsСвойствоМассив
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Доступность
Доступный в iOS 8.0 и позже.
-
Применяет силу между указанным колесом и землей под механизмом.
Объявление
Swift
func applyEngineForce(_value: CGFloat, forWheelAtIndexindex: Int)Параметры
valueВеличина силы, в ньютонах.
indexИндекс колеса, применяющего силу.
Обсуждение
Применение положительной силы крутит колесо в направлении, которое переместило бы механизм вперед; применение отрицательной силы перемещает механизм наоборот.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Вызов этого метода применяет силу для одного шага (или кадр) моделирования физики. Для непрерывного ускорения механизма вызовите этот метод снова на subequent шагах моделирования (например, от делегата средства рендеринга сцены
renderer:updateAtTime:метод), пока механизм не достигает Вашей желаемой скорости.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Применяет силу между указанным колесом и землей под механизмом.
Объявление
Swift
func applyBrakingForce(_value: CGFloat, forWheelAtIndexindex: Int)Параметры
valueВеличина крутящего момента, в ньютон-метрах.
indexИндекс колеса, применяющего силу.
Обсуждение
Применение тормозящего усилия заставляет колесо замедляться независимо от направления, в котором это в настоящее время вращается.
Как со всеми физическими количествами в SceneKit, Вы не должны использовать реалистические измерения силы в своем приложении — эффекты моделирования физики зависят от относительных различий между силами, не на их абсолютных значениях. Можно использовать любые значения, производят поведение или геймплей, Вы смотрите столько, сколько Вы последовательно используете их.
Вызов этого метода применяет тормозящее усилие для одного шага (или кадр) моделирования физики. Для непрерывного замедления механизма вызовите этот метод снова на subequent шагах моделирования (например, от делегата средства рендеринга сцены
renderer:updateAtTime:метод), пока механизм не останавливает или достигает Вашей желаемой скорости.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Вертится указанное колесо вокруг его руководящей оси.
Объявление
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Доступность
Доступный в iOS 8.0 и позже.
-
speedInKilometersPerHourСвойствоСкорость относительно земли механизма, в километрах в час. (только для чтения)
Объявление
Swift
var speedInKilometersPerHour: CGFloat { get }Objective C
@property(nonatomic, readonly) CGFloat speedInKilometersPerHourОператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
