版本: Unity 6 (6000.0)
语言英语
  • C#

WheelCollider

UnityEngine 中的类

/

继承自: Collider

/

实现于: UnityEngine.VehiclesModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们确实会阅读用户提出的每项更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您花时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

描述

用于车辆车轮的特殊碰撞器。

Wheel collider 用于模拟车辆车轮。它模拟弹簧和阻尼器悬挂设置,并使用基于滑动的轮胎摩擦模型来计算车轮接触力。

车轮的碰撞检测是通过从 center 向下沿本地 y 轴投射一条射线来执行的。车轮有一个 radius,并且可以向下延伸 suspensionDistance 量。

车轮使用 motorTorquebrakeTorquesteerAngle 属性进行控制。

Wheel collider 使用基于滑动的摩擦模型,与物理引擎的其余部分分开计算摩擦。这允许更逼真的行为,但使车轮碰撞器忽略标准 PhysicsMaterial 设置。不同路面材料的模拟是通过根据车轮撞击的材料更改 forwardFrictionsidewaysFriction 来完成的。其他资源:GetGroundHitWheelFrictionCurve

属性

brakeTorque以牛顿米表示的制动扭矩。
center车轮的中心,以物体的本地空间为单位测量。
forceAppPointDistance从静止车轮底部测量的悬挂力和轮胎力作用点。
forwardFriction轮胎在车轮指向方向上的摩擦力属性。
isGrounded指示车轮当前是否与任何物体发生碰撞(只读)。
mass车轮的质量,以公斤表示。必须大于零。典型值应在 (20,80) 范围内。
motorTorque以牛顿米表示的车轮轴上的电机扭矩。正或负,取决于方向。
radius车轮的半径,以本地空间为单位测量。
rotationSpeed车轮的旋转速度,以度/秒为单位测量。
rpm当前车轮轴旋转速度,以每分钟转数 (rpm) 为单位测量(只读)。
sidewaysFriction轮胎在侧向方向上的摩擦力属性。
sprungMass由该 WheelCollider 支持的质量。
steerAngle以度为单位的转向角,始终围绕本地 y 轴。
suspensionDistance车轮悬挂的最大延伸距离,以本地空间为单位测量。
suspensionExpansionLimited限制 Wheel Collider 悬挂的膨胀速度。如果您在具有多个 Wheel Collider(例如车辆)的 Rigidbody 上设置此属性,那么它将影响 Rigidbody 上的所有其他 Wheel Collider。
suspensionSpring车轮悬挂的参数。悬挂尝试通过施加线性力和阻尼力来达到目标位置。
wheelDampingRate车轮的阻尼率。必须大于零。

公共方法

ConfigureVehicleSubsteps配置车辆子步长参数。
GetGroundHit获取车轮的地面碰撞数据。
GetWorldPose获取车轮的世界空间姿态,并考虑地面接触、悬挂限制、转向角和旋转角(以度为单位)。
ResetSprungMasses重置车辆的弹簧质量。

继承的成员

属性

attachedArticulationBody碰撞器所附着的关节体。
attachedRigidbody碰撞器所附着的刚体。
bounds碰撞器的世界空间包围体积(只读)。
contactOffset此碰撞器的接触偏移值。
enabled已启用的碰撞器将与其他碰撞器发生碰撞,而禁用的碰撞器则不会发生碰撞。
excludeLayers此碰撞器在决定碰撞器是否可以接触另一个碰撞器时应排除的其他图层。
GeometryHolder保存碰撞器的几何形状及其类型的结构。(只读)
hasModifiableContacts指定此碰撞器的接触点是否可修改。
includeLayers此碰撞器在决定碰撞器是否可以接触另一个碰撞器时应包含的其他图层。
isTrigger指定此碰撞器是否配置为触发器。
layerOverridePriority分配给此碰撞器的决策优先级,用于在有关碰撞器是否可以接触另一个碰撞器的决定存在冲突时使用。
material碰撞器使用的材质。
providesContacts此碰撞器是否为 Physics.ContactEvent 生成接触点。
sharedMaterial此碰撞器的共享物理材质。
gameObject此组件所附着的游戏对象。组件始终附着到游戏对象上。
tag此游戏对象的标签。
transform附着到此 GameObject 的 Transform。
hideFlags对象是否应隐藏、与场景一起保存或用户是否可修改?
name对象的名称。

公共方法

ClosestPoint返回碰撞器上最靠近给定位置的点。
ClosestPointOnBounds与所附碰撞器的包围盒最近的点。
GetGeometry返回请求类型的碰撞器的几何形状。
Raycast投射一条射线,忽略除此碰撞器之外的所有碰撞器。
BroadcastMessage在该游戏对象或其任何子对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。
CompareTag将 GameObject 的标签与定义的标签进行比较。
GetComponent获取与指定组件位于同一 GameObject 上的类型为 T 的组件的引用。
GetComponentInChildren获取与指定组件位于同一 GameObject 上的类型为 T 的组件的引用,或获取 GameObject 的任何子对象的引用。
GetComponentIndex获取组件在其父 GameObject 上的索引。
GetComponentInParent获取与指定组件位于同一 GameObject 上的类型为 T 的组件的引用,或获取 GameObject 的任何父对象的引用。
GetComponents获取与指定组件位于同一 GameObject 上的类型为 T 的所有组件的引用。
GetComponentsInChildren获取与指定组件位于同一 GameObject 上的类型为 T 的所有组件的引用,以及 GameObject 的任何子对象的引用。
GetComponentsInParent获取与指定组件位于同一 GameObject 上的类型为 T 的所有组件的引用,以及 GameObject 的任何父对象的引用。
SendMessage在该游戏对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。
SendMessageUpwards在该游戏对象以及行为的每个祖先对象中的每个 MonoBehaviour 上调用名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。
GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy删除游戏对象、组件或资源。
DestroyImmediate立即销毁对象 obj。强烈建议您使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某个游戏对象相关)的快照,并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,查看它们是否引用同一个对象。

消息

OnCollisionEnter当此碰撞器/刚体开始接触另一个刚体/碰撞器时,会调用 OnCollisionEnter。
OnCollisionExit当此碰撞器/刚体停止接触另一个刚体/碰撞器时,会调用 OnCollisionExit。
OnCollisionStay每帧都会为每个与另一个碰撞器或刚体接触的碰撞器或刚体调用 OnCollisionStay。
OnTriggerEnter当一个 GameObject 与另一个 GameObject 发生碰撞时,Unity 会调用 OnTriggerEnter。
OnTriggerExit当碰撞器 other 停止接触触发器时,会调用 OnTriggerExit。
OnTriggerStay几乎每一帧都会为每个接触触发器的碰撞器 other 调用 OnTriggerStay。该函数位于物理计时器上,因此不一定会每帧运行。