class SCNConstraint : NSObject
根据指定规则自动调整节点的位置,旋转或比例的对象的抽象超类。
要控制带有约束的一个或多个SCNNode对象的变换(位置,旋转和缩放),请创建并配置SCNConstraint子类的实例以提供所需的行为,然后将这些约束对象添加到每个节点的约束数组中。
当SceneKit准备渲染场景时,它将检查附加到每个节点的约束列表以确定该节点的变换,然后在显示场景之前应用新的变换。
var influenceFactor: CGFloat { get set }
使用此属性可以放宽约束对其所应用的节点的影响。 例如,考虑一个包含聚光灯的节点,该节点受SCNLookAtConstraint对象的约束指向另一个包含移动游戏角色的节点。 如果约束的影响因子是1.0,则每次渲染框架时,SceneKit都会将Spotlight节点调整为直接指向游戏角色。 如果将影响因子减小为0.5,则每次SceneKit渲染一个帧时,它都会将聚光灯从其当前方向移动到目标方向的一半。 结果,聚光灯继续跟随移动的角色,但略有滞后。
默认影响因子为1.0,指定SceneKit在每帧应用约束的全部效果。 影响因子0.0表示约束无效。
此属性对SCNTransformConstraint对象无效。
class SCNLookAtConstraint : SCNConstraint
使节点始终指向指定的其他节点的约束。
例如,您可以使用视线约束来确保摄像机或聚光灯始终跟随游戏角色的运动。 要将约束附加到SCNNode对象,请使用其约束属性。
节点指向其局部坐标系的负z轴方向。 该轴定义了包含摄影机的节点的视图方向以及包含聚光灯或定向光的节点的照明方向,以及节点的几何形状和子节点的方向。 当Scene Kit评估外观约束时,它将更新约束节点的transform属性,以便该节点的负z轴指向约束的目标节点。
convenience init(target: SCNNode?)
Creates a look-at constraint for a specified target node.
为指定的node 创建一个 look-at constraint 约束
target 为 受约束的节点将被重定向以指向的node
var isGimbalLockEnabled: Bool { get set }
一个布尔值,它指定是否允许约束节点旋转。
如果此属性的值为true,则限制受约束节点围绕横摇轴(从受约束节点指向目标节点的向量)旋转。 如果此属性的值为false(默认值),则当约束调整其方向时,受约束的节点将围绕此轴自由旋转。
例如,当约束摄像机跟随移动的对象时,将此属性设置为true可确保从摄像机的角度来看地平线保持水平。
网友评论