SCNConstraint
Ограничение автоматически корректирует трансформацию (позиция, вращение и масштаб) узла на основе правил, которые Вы определяете. SCNConstraint
класс абстрактен — Вы не используете или разделяете его на подклассы непосредственно. Вместо этого создайте и сконфигурируйте экземпляр одного из его конкретных подклассов, затем используйте constraints
свойство SCNNode
объект добавить ограничение к узлу, трансформацией которого это должно управлять.
Таблица 1 описывает виды ограничений, которые можно создать в SceneKit.
Имя класса |
Описание |
---|---|
Корректирует ориентацию узла так, чтобы она всегда указывала на другой узел. |
|
Выполняет блок, Вы обеспечиваете, что вычисляет новую трансформацию для узла. |
|
Инверсная кинематика использования для перемещения цепочки узлов вместе к целевой позиции. |
Когда SceneKit подготавливает представлять сцену, он исследует список ограничений, присоединенных к каждому узлу для определения трансформации для того узла, затем применяет новую трансформацию прежде, чем вывести на экран сцену. Вы используете ограничения для установления отношений, упрощающих управлять графиком сцены. Например, в игре, Вы могли бы хотеть, чтобы узел, содержащий камеру, всегда указал на персонажа, как раз когда тот символ перемещает сцену. Вместо того, чтобы непосредственно переориентировать узел камеры каждый раз, когда Вы перемещаете символ, можно добавить взгляд - при ограничении к узлу камеры, чтобы заставить SceneKit переориентировать камеру автоматически.
Наследование
-
NSObject
-
SCNConstraint
-
SCNIKConstraint
-
SCNLookAtConstraint
-
SCNTransformConstraint
-
NSObject
-
SCNConstraint
-
SCNIKConstraint
-
SCNLookAtConstraint
-
SCNTransformConstraint
Соответствует
-
AnyObject
-
CVarArgType
-
Сопоставимый
-
Hashable
-
NSCoding
-
NSCopying
-
NSObjectProtocol
-
NSSecureCoding
-
Печатаемый
-
SCNAnimatable
-
NSCopying
-
NSObject
-
NSSecureCoding
-
SCNAnimatable
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.9 и позже.
-
influenceFactor influenceFactor
СвойствоВлияние ограничения на трансформацию узла.
Объявление
Swift
var influenceFactor: CGFloat
Objective C
@property(nonatomic) CGFloat influenceFactor
Обсуждение
Используйте это свойство для ослабления эффекта ограничения на узлы, которым это применяется к. Например, рассмотрите узел, содержащий центр внимания, ограниченный
SCNLookAtConstraint
возразите для указания на другой узел, содержащий движущийся игровой символ. Если фактор влияния ограничения1.0
, SceneKit корректирует узел центра внимания для указания непосредственно на игровой символ каждый раз, когда это представляет кадр. Если Вы сокращаете фактор влияния до0.5
, каждый раз, когда SceneKit представляет кадр, он перемещает центр внимания на полпути от его текущей ориентации до целевой ориентации. В результате центр внимания продолжает следовать за движущимся символом, но с небольшой задержкой.Фактор влияния по умолчанию
1.0
, указание, что SceneKit применяют полный эффект ограничения каждый кадр. Фактор влияния0.0
означает, что ограничение не имеет никакого эффекта.Это свойство не имеет никакого эффекта на
SCNTransformConstraint
объекты.Оператор импорта
Objective C
@import SceneKit;
Swift
import SceneKit
Доступность
Доступный в OS X v10.10 и позже.