class SCNPhysicsBody : NSObject
附加到场景图节点的物理模拟属性。
var physicsShape: SCNPhysicsShape? { get set }
定义用于碰撞检测的物理实体的固体体积的对象。
物理模拟不使用节点的可见几何进行碰撞检测-使用简单形状时模拟可以更快地运行,并且对于某些元素使用不可见碰撞形状设计应用或游戏也很有用。 通常,您可以将身体的物理形状设置为大致匹配其节点可见内容的边界框或原始形状,但是可以使用更详细的形状进行更精确的碰撞检测,而这会降低性能。
有关创建物理形状的详细信息,请参见SCNPhysicsShape。
var type: SCNPhysicsBodyType { get set }
一个常数,该常数确定物理物体对力和碰撞的响应方式。
static: 创建一个不受力量或碰撞影响而不能移动的物理体。
使用静态物体来构建场景中的其他物体需要碰撞但不会移动的固定装置,例如地板,墙壁和地形
dynamic:创建一个可受力量和碰撞影响的物理体。
使用物理模拟移动的场景元素的动态物体。
kinematic:创建一个不受力或碰撞影响的物理体,但移动时可能会导致影响其他物体的碰撞。
使用运动物体来直接控制场景元素,但其运动操纵其他元素。
例如,要允许用户用手指推动物体,可以创建一个运动物体并将其附加到一个不可见的节点上,这个节点将移动跟随事件。
(在macOS中,使用相同的技术来允许用户使用鼠标指针移动对象。)
var velocityFactor: SCNVector3 { get set }
速度因数
使用此属性可以约束或限制物理模拟对包含物理实体的节点的影响。 例如,您可以通过将速度因子设置为{1.0,1.0,0.0}来强制物体仅在两个方向上移动。
var angularVelocityFactor: SCNVector3 { get set }
角速度因子
一个乘数,它会影响SceneKit如何将由物理模拟计算得出的旋转应用于包含物理实体的节点。
var isAffectedByGravity: Bool { get set }
一个bool值, 用于确定重力常量是否能加速SCNPhysicsBody
var mass: CGFloat { get set }
物体的质量,单位为kg
只有dynamic的物体的质量为1.0, static 和 kinematic的物体的质量都是0
var charge: CGFloat { get set }
电荷,以库伦为单位
var friction: CGFloat { get set }
摩擦力
var rollingFriction: CGFloat { get set }
滚动摩擦
此属性模拟圆形的实体与可能会对其滚动的实体之间的牵引力。 滚动摩擦力为0.0(默认值)表示被诱导滚动(例如,放置在倾斜的表面上)的物体将继续滚动而不会减慢速度,除非另有作用;否则,滚动摩擦力1.0会阻止物体 滚动。
var restitution: CGFloat { get set }
确定身体在碰撞中损失或获得多少动能的因素。
var velocity: SCNVector3 { get set }
一个既描述当前速度(以米/秒为单位)又描述物理物体运动方向的向量。
var angularVelocity: SCNVector4 { get set }
一个向量,它描述物理体的当前旋转轴和旋转速度(以弧度每秒为单位)。