本系列文章是对<3D Apple Games by Tutorials>一书的学习记录和体会git
此书对应的代码地址github
SceneKit系列文章目录swift
物理形状决定了物理引擎在处理碰撞时的形状检测. 为了让物理模拟器运行的更快,最好将物理形状设定为简单的方形,球形或其余系统提供的原始形状,大略匹配节点外观就好了app
若是想要添加更多细节到物理形状,能够手动建立SCNPhysicsShape并传入,不然可以使用nilpost
geometryNode.physicsBody = SCNPhysicsBody(type: .Dynamic, shape: nil)
复制代码
Scene Kit中的scene默认打开了重力,当设定过动态形体后,物体就会受到重力影响下落学习
力使用3维向量SCNVector3表示,使用applyForce(_: atPosition: impluse:)方法来添加一个力,并指定位置.一个力能够同时影响线速度和角速度. impluse脉冲状只做用一次,好比踢一个球,非脉冲状的则能够持续做用. Position位置能够影响力的做用效果spa
力矩使用4维向量SCNVector4表示,使用applyTorque(_: impulse:)来添加一个力矩,力矩只影响角动量. x-,y-,z-指定旋转轴,w-指定旋转角度也就是大小值 Scene Kit使用国际单位制,所以质量单位是kg千克,力的单位是N牛,脉冲单位是N-s牛秒,力矩单位是N-m牛米.3d