Unity-車輪碰撞體教程
車輪碰撞體 (Wheel Collider) 組件由 PhysX 3 車輛 SDK 提供支持。
本教程將介紹如何創(chuàng)建一輛具備基本功能的汽車。
首先選擇?GameObject?>?3D Object?>?Plane。這是將汽車行駛的地面。為簡單起見,請確保地面的變換為?0__(在 Inspector 窗口的 Transform 組件上,單擊 Settings 齒輪,然后單擊?Reset__)。將 Transform 組件的 Scale 字段增大到?100?以放大平面。
創(chuàng)建一個(gè)基本的汽車骨架
1.首先,添加一個(gè)游戲?qū)ο笞鳛槠嚨母螒驅(qū)ο?。為此,請選擇?GameObject?>?Create Empty。將游戲?qū)ο蟮拿Q更改為?car_root
。 1.向?car_root
?中添加一個(gè) 3D 物理剛體組件。對于默認(rèn)懸架設(shè)置而言,默認(rèn)質(zhì)量 1kg 太輕;請將其更改為 1500kg 以大幅增加其質(zhì)量。 1.然后,創(chuàng)建汽車車身碰撞體。選擇?GameObject?>?3D Object?>?Cube。將此立方體設(shè)為?car_root
?下面的一個(gè)子游戲?qū)ο?。?Transform 重置為?0?以使其在局部空間中完美對齊。汽車沿 Z 軸定向,因此請將 Transform 中的?Z?Scale?設(shè)置為?3。 1.添加車輪根節(jié)點(diǎn)。依次選擇?car_root
?和?GameObject?>?Create Empty Child。將名稱更改為?wheels
。重置其中的 Transform 組件。此游戲?qū)ο蟛皇潜匦璧?,但對于后面的調(diào)整和調(diào)試很有用。 1.要?jiǎng)?chuàng)建第一個(gè)車輪,請選擇?wheels
?游戲?qū)ο?,然后選擇?GameObject?>?Create Empty Child__,并將其命名為?frontLeft
。重置 Transform 組件,然后將 Transform?Position__?X?設(shè)置為 –1,將?Y?設(shè)置為 0,并將?Z?設(shè)置為 1。要向車輪添加碰撞體,請選擇?Add component?>?Physics?>?Wheel Collider。 1.復(fù)制?frontLeft
?游戲?qū)ο?。?Transform?的?X?位置更改為 1。將名稱更改為?frontRight
。 1.同時(shí)選擇?frontLeft
?和?frontRight
?游戲?qū)ο?。?fù)制這兩個(gè)游戲?qū)ο?。將這兩個(gè)游戲?qū)ο蟮?Transform?Z?位置更改為 –1。將名稱分別更改為?rearLeft
?和?rearRight
。 1.最后,選擇?car_root
?游戲?qū)ο?,并使用移?dòng)工具將其抬高到略高于地面的位置。
現(xiàn)在應(yīng)該能看到如下所示的結(jié)果:

為了使這輛車真正可駕駛,需要為其編寫一個(gè)控制器。以下代碼示例將用作控制器:
在?car_root
?游戲?qū)ο笊蟿?chuàng)建新的 C# 腳本 (Add Component?>?New Script),將該示例代碼復(fù)制到腳本文件中并保存??梢园慈缦滤菊{(diào)整腳本參數(shù);嘗試使用不同設(shè)置并進(jìn)入播放模式以測試結(jié)果。
以下設(shè)置作為汽車控制器非常有效:

提示:確保增大?AxleInfo
?的?size
。
單個(gè)車輛實(shí)例上最多可以有 20 個(gè)車輪,每個(gè)車輪都施加轉(zhuǎn)向、電機(jī)或制動(dòng)扭矩。
接下來看看可視車輪。如您所見,車輪碰撞體不會(huì)將模擬的車輪位置和旋轉(zhuǎn)反向應(yīng)用于車輪碰撞體的變換,因此添加可視車輪需要一些技巧。
這里需要一些車輪幾何體。可以用圓柱體制作簡單的車輪形狀??赏ㄟ^多種方法來添加可視車輪:制作車輪后必須在腳本屬性中手動(dòng)分配可視車輪,或者編寫一些邏輯來自動(dòng)查找相應(yīng)的可視車輪。本教程遵循第二種方法。將可視車輪附加到車輪碰撞體游戲?qū)ο蟆?/p>
接下來,更改控制器腳本:
車輪碰撞體組件的一個(gè)重要參數(shù)是?Force App Point Distance。此參數(shù)是從靜止車輪的底部到車輪受力點(diǎn)的距離。默認(rèn)值為 0,表示在靜止車輪的底部施加力,但明智的做法是將此點(diǎn)定位在略低于汽車質(zhì)心的位置。
注意:要查看車輪碰撞體的實(shí)際應(yīng)用,請下載?Vehicle Tools?資源包,其中包含了用于裝配輪式車輛以及為車輪碰撞體創(chuàng)建懸架的工具。