共用方式為


Mesh Physics 程式設計人員指南

一般提示

您可以從掃描 Unity 物理文件開始。有大量的資源可用來優化 Unity 中的物理。

網格物理隨附一些額外的挑戰。 以下是一些協助克服這些秘訣的秘訣。

  • 製作厚牆: 網路同步處理可能會稍微移動僵硬的主體。 因此,您會在對象之間看到一些額外的滲透。 小型動態主體可能會被推過薄壁。 對於較厚的物件和牆壁,這些通道效果不太可能。 可能的話,請使用凸殼或一小組凸殼來用於動態主體。

  • 盡可能使用厚凸塊進行靜態幾何。 請嘗試避免網格,特別是高度密集的網格。

  • 公斤級的實際群眾:來自各種來源的內容可能會在同一個場景中互動。 如果對象之間的品質比例合理,這很有效。 一個很好的起點是用公斤將現實群眾指派給身體。

開發增強的網格物理內容

自動播放動畫

您可以將自動播放動畫新增至與物理主體互動的場景。 這些動畫會在客戶端之間自動同步處理,方法是暫時調整其播放速度(降低播放速度或加快速度),直到所有客戶端同時處於相同的動畫狀態為止。

設定

  • 播放自動 啟用。
  • 如果動畫會影響與物理主體互動的碰撞器,建議使用動畫(但並非必要)。
  • Culling Type 設定為 “Always Animate” (由 Mesh Physics 自動強制執行),因為動畫可能會影響物理主體,即使它們螢幕外也一樣。

偵測器中動畫元件設定的螢幕快照。

自動播放動畫所使用的動畫剪輯可以使用任何 包裝模式。 實用的選擇是「迴圈」和「乒乓球」。

偵測器中動畫剪輯資產設定的螢幕快照。

元件

將下列 MonoBehaviour 其中一個元件新增至 物件,會將特定行為新增至這個物件。

粘性本文

使身體堅持其他身體。 它可以用來向其他屍體投擲飛鏢,或附加牆上的照片。 這是藉由在涉及的兩個主體之間建立固定條件約束來實作。 注意: 此作業會在所有用戶端上執行,因此會實作為特殊的網路訊息。

偵測器中黏附本文腳本選項的螢幕快照。

設定

  • 遊戲桿: 定義本文是否要堅持動態或/和靜態主體。
  • 時機: 有時,當它只是接觸另一個身體時,你想貼上一個快速的身體,有時你想粘在一個身體對另一個身體一段時間,就像等待膠水硬化時,你粘在牆上的按鈕。
  • 碰撞控件 :停用一個主體與另一個主體之間的特定衝突。 通常您可以/應該使用衝突層。 不過,由於Microsoft Mesh 中只有 32 個硬式編碼衝突層,因此這不是一個選項。 您可以在這裡停用特定主體。
  • 適用於碰撞主體的受影響本文篩選套用至碰撞控件

內含專案欄位

確保僵硬的主體會停留在一或多個觸發程式碰撞器的界限內。

偵測器中內含專案字段腳本選項的螢幕快照。

若要讓此元件能夠運作,它必須附加至一或多個觸發程式碰撞器。 (這些觸發程式碰撞器也可以巢狀在附加此元件之 下方 GameObject 的轉換階層中。

當場景啟動時,受此元件影響的剛性主體必須已經位於觸發程式碰撞器(“觸發音量”)的界限內。 然後,每個僵硬體的品質中心將受到限制,以停留在觸發體體積的界限內,否則無法拉動或移動這些剛性身體的品質中心。

設定

  • 最大偏差自內含專案 允許受影響僵硬體的品質中心稍微超出觸發程式磁碟區,然後才重新進入。 這是效能優化取捨:如果允許的最大偏差很大,主體可能會明顯離開觸發程式磁碟區並貼齊,但程式代碼可以避免在觸發程式磁碟區內部休息或緩慢移動時,非常經常地檢查和驗證主體的位置。

  • 受影響的主體針對受此元件影響的主體定義選擇性篩選條件 。 (根據預設,所有屍體都會受到影響。

速度向量欄位

允許加速/減速僵硬的人,直到達到特定的目標速度。

偵測器中方向速度欄位腳本選項的螢幕快照。

此元件可控制速度的大小和方向。 請參閱 速度大小欄位 ,只控制大小和 速度方向欄位 ,只控制方向。 作業有兩種模式:

  • 如果連接到一個僵硬的人,這個僵硬的人將被控制。
  • 如果附加至觸發程式碰撞器,所有進入此觸發程式音量的剛性主體都會受到影響。

設定

  • 速度類型 會定義我們正在處理線性或角度速度。
  • 區域空間 的方向會定義是否在元件所附加物件的本機空間中指定目標速度。
  • 目標速度 會以公尺/秒為單位設定所需的速度向量(或角速度為弧度/秒)。
  • 最大加速 定義套用到目標速度的最大加速。
  • 加速類型 會定義達到目標速度的加速類型。
    • 瞬間將立即達到目標速度(與最大加速 = 無限的常數加速 相同)。
    • 常數加速可確保主體在 [最大加速] 設定的限制內達到目標速度。
    • Smooth 方法 可減少您接近目標速度的加速。 這表示實際上,您永遠不會達到目標速度。 此外,如果有任何外部影響,如上坡或下坡,這種額外的影響不會完全被覆寫,導致下坡速度比上坡快。
  • 受影響的主體針對受此元件影響的主體定義選擇性篩選條件 。 (根據預設,所有屍體都會受到影響。

縮放重力欄位

改變重力如何影響一或多個觸發程式碰撞器界限內的僵硬體。

偵測器中反重力字段腳本選項的螢幕快照。

若要讓此元件能夠運作,它必須附加至一或多個觸發程式碰撞器。 (這些觸發程式碰撞器也可以巢狀在已附加此元件的 GameObject 下方的轉換階層中。

任何接觸或重迭觸發程式碰撞器(“觸發體積”)的剛性主體都會根據這個元件的重力設定,而不是全球物理重力的行為。 已停用重力的剛性身體會被忽略。

對於玩家在世界上的大小和重力的看法之間有一個有趣的關係:

  • 如果重力小於我們習慣的(物體下降時速度較慢),玩家就會認為自己更大,就像一個巨大的。
  • 如果重力大於我們習慣的(物體下降時更快),玩家就會認為自己更小,就像老鼠一樣。

設定

  • 重力默認允許為重力刻度屬性選取數個有趣且實用的預設值:各種天體(月亮、火星、地球、木星)、無重力(外太空)或反向重力(倒置)。 您隨時可以使用任何您想要的值來覆寫 重力尺規
  • 重力尺規 會設定觸發程序體積內的局部重力,與影響場景的默認物理重力有關。 預設重力尺規為 1 會讓重力不受影響:較大的值會增加重力;0 移除重力;負值會切換重力方向。
  • 受影響的主體針對受此元件影響的主體定義選擇性篩選條件 。 (根據預設,所有屍體都會受到影響。

軌道重力場

模擬場景中「玩具行星」的重力。

偵測器中重力欄位腳本選項的螢幕快照。

若要讓此元件能夠運作,它必須附加至一或多個觸發程式碰撞器。 (這些觸發程式碰撞器也可以巢狀在已附加此元件的 GameObject 下方的轉換階層中。

任何接觸或重迭觸發程式碰撞器(「觸發程式卷」)的剛性主體,會提取至附加此元件之物件的位置。

設定

  • 重力 定義重力的大小。 這是繞行體(“月亮”)以一米距離向中央體加速。 由於軌道速度是 sqrt(重力/半徑),這個值描述在一米半徑的穩定軌道中月亮的速度。

  • 停用全域重力 會針對受此元件影響的身體停用場景的全球物理重力設定。 根據預設,全球場景重力仍然會影響您的行星及其月球。

  • 受影響的身體針對可能成為這個重力欄位中月球的主體定義選擇性篩選條件

  • 在迴圈軌道 上強制月球是一種作弊,它應用了一些溫和的力量將月球推入循環軌道。 動機是,非專家很難以達到迴圈軌道的方式設定屍體的重力和初始速度。 此外,如果啟用此選項,Unity 編輯器中放置於重力場內的任何衛星都會在載入場景時自動開始繞行其中央主體。

  • 強制軌道 強度會調整加速度,以迫使月球進入圓形軌道。

  • 設定強制半徑 放置 使位於 Unity 編輯器重力場內的月球自動採用與中央主體的初始距離作為慣用軌道。

  • 設定強制半徑 投擲 使衛星以互動方式抓取並移動到重力場自動採用與中央主體的距離,它們被丟棄為慣用的軌道。

  • 默認強制半徑 會定義上述作弊的預設半徑,除非由任何其他選項覆寫。

浮點欄位

模擬水面上任意剛性主體的浮力:身體似乎漂浮在連接的觸髮程序卷上。

偵測器中 Buoyancy 字段腳本選項的螢幕快照。

若要讓此元件能夠運作,它必須附加至一或多個觸發程式碰撞器。 (這些觸發程式碰撞器也可以巢狀在已附加此元件的 GameObject 下方的轉換階層中。

任何接觸或重迭觸發程式碰撞器(“觸發音量”)的剛性身體都體驗浮力(向上)以保持它們漂浮。

這個元件會使用硬體碰撞器的形狀來計算其密度(換句話說,體積除以品質)、浮力、拖曳和摩擦。

浮力碰撞器

優點:效能。 浮點數計算的計算成本會以線性方式調整與碰撞器頂點的數目。 一般物理碰撞器,身體,即使已經簡化,往往要複雜得多(就頂點數目而言),比浮力工作足夠好的需求。

如何使用:將一個(或數個)額外的碰撞器(可以停用)新增至身體。 將碰撞器標記為明確的浮力船體,方法是將名為 BuoyancyHull (確切拼字問題!)的物理材料指派給他們。 此物理材質的組態詳細數據並不重要 - 網格工具組套件會提供適當的物理材料。 如果主體有任何標示為這樣的碰撞器,則只有這些碰撞器用於浮點計算:所有其他碰撞器都會被忽略。

最佳做法:明確的浮力船體碰撞器與任何可能被扔進 BuoyancyField的僵硬體碰撞器。 使用 Cube 碰撞器是最好的(也是最簡單的),因為它們具有最少的頂點(每對撞器 8 個)。 比對浮凸主體的確切視覺形狀通常不需要,才能取得良好的結果:一個非常粗略的近似值通常就足夠了。

設定

  • 密度 是模擬液體的密度,以每立方米公斤為單位“填滿”觸發程序體積。 (預設值代表室內溫度的近似水密度。
  • Surface Type 會指定元件如何取樣水面的形狀,以計算浮力。
    • 靜態平面 假設水面是完美的平面,永遠不會從其在場景中的初始位置移動。 當場景開始時,水面的位置和方向只會決定一次。 這是計算成本最低的選項。
    • 動態平面 假設水面是完全平面的,但允許它移動(例如,水位可以上升或下沉)。 每個畫面會決定水面的位置和方向一次。
    • 動態平面每主體 支援不是平面的水面(例如,它可以是波浪)。 對於漂浮在水面上的每一個僵硬體來說,每個框架下水面的局部平面近似值都會決定一次,然後用來計算這個僵硬體的浮力。
  • 受影響的主體定義可在此浮點字段中浮動的主體選擇性篩選條件 。 (根據預設,所有機構都符合資格。
  • 拖曳 控制運動阻力,因為僵硬的人擊中水(換句話說,摩擦正交到身體表面)。
  • 皮膚摩擦 控制運動阻力,因為剛性的人通過水移動(換句話說,摩擦與身體表面平行)。

重要! 若要允許元件存取固定的碰撞器網格三角形,必須在碰撞器網格的 [匯 入] 設定中選取 [讀取/寫入啟用] 複選框。 否則,浮標欄位會忽略主體,而且會落在欄位上,而不會受到它的影響。

重要! 請確定您的物理主體有合理的品質,以確保它們在浮力場上如預期般運作:

  • 如果一個僵硬的體質與它的體積相比是難以置信的高,它將沉入底部。
  • 如果與它的體積(例如 Unity Rigidbody 的一個品質單位的預設值為質量單位)相比,僵硬的體質是難以置信的低位,它只會坐在類比液體之上。

根據預設,浮力欄位會取樣觸發程式卷的表面,以判斷水面的形狀(受限於所選 的水面類型 設定)。 以這種方式取樣 CPU 記憶體中動畫的介面,但 GPU 頂點著色器以動畫顯示的表面在運行時間無法看見。 元件 BuoyancyField 提供名為 GetDistanceFromSurface 的可腳本存取回呼委派,可讓外部腳本提供 GPU 動畫水面圖形的相關信息。

BuoyancyFieldWaves如需如何使用無程式代碼方法取得波浪水面,請參閱下列元件。

浮力場波

與特定頂點著色器 BuoyancyFieldWaves_VertexPosition 搭配運作的元件附加元件BuoyancyField(可做為子著色器圖形和 HLSL 包含檔案)。 這會建立波浪水面的視覺效果,以及漂浮在水面上之對象的對應行為。

偵測器中浮點字段波浪腳本選項的螢幕快照。

此元件必須新增至已 BuoyancyField 新增元件的 GameObject。

要產生動畫效果的水面必須以平面、鑲嵌網格的形式提供,其界限是從上到下看到水面所需形狀的網格。 用於水面的材料必須使用包含 BuoyancyFieldWaves_VertexPosition 子著色器的著色器來判斷網格的頂點位置。 您可以使用包含的樣本 BasicWavyWaterSurface 材質(以及具有相同名稱的著色器圖形)作為您自己著色器開發起點。

設定

  • 波浪網格轉譯器 會參考 MeshRenderer 轉譯水面網格的元件。
    • 材質 會顯示轉譯器所使用的材質。 此資訊僅供參考之用。
    • 著色器 會顯示材質所使用的著色器。 此資訊僅供參考之用。
  • 波浪著色器屬性名稱 會定義著色器必須由著色器公開的必要著色器屬性名稱。 此元件會在運行時間存取這些屬性,以確保浮點字段的行為與所有用戶端的水面視覺效果保持同步。
    • 腳本控制時間 是公開 float的型別著色器屬性名稱,每個畫面都會 持續更新 每個畫面,並持續增加的時間(以秒為單位),且會在所有客戶端之間同步處理。 子 BuoyancyFieldWaves_VertexPosition 著色器會使用此共享時間來建立波浪模式,讓所有用戶端保持同步,並與浮點欄位的行為同步。
    • Wave Speed 是公開 float型別著色器屬性的名稱,可 決定波浪水平傳播的基底速度 。 屬性值本身必須在套用至波浪表面網格的材質中設定。 將此值設定為零會使波面變成靜態且不移動。
    • Wave Length 是公開 float型別著色器屬性的名稱,可 決定波紋的粗略程度 。 屬性值本身必須在套用至波浪表面網格的材質中設定。 較小的值會產生短波紋;較大的值會產生長而橫掃的波。
    • Wave Height 是公開 float型別著色器屬性的名稱,可 決定波的基底高度 。 屬性值本身必須在套用至波浪表面網格的材質中設定。 將此設定為零會使波面完全平整。

包含的取樣 BasicWavyWaterSurface 著色器圖形(由同名材質使用)會使用必要的 BuoyancyFieldWaves_VertexPosition 頂點子著色器來產生波浪 3D 表面,但只包含片段著色器的最小獨立實作,讓表面呈現為未遮蔽、純色、半透明網格。

著色器圖形編輯器中基本波浪水面著色器圖形的螢幕快照。

您可以自定義與元件完全搭配BuoyancyFieldWaves您喜好使用的著色器的片段路徑。 不過,著色器的頂點路徑必須使用BuoyancyFieldWaves_VertexPosition子著色器圖形,並將這個子著色器圖形的四個輸入公開為float整體著色器圖形的 -type 著色器屬性,讓元件可以在運行時間存取它們。 如果您的著色器無法包含必要的子著色器圖形,或未公開任何必要的著色器屬性,元件偵測器會在設計時間顯示錯誤訊息,且浮力無法在運行時間運作:

顯示錯誤訊息的浮點字段波浪腳本選項螢幕快照:未使用的必要頂點子著色器。

顯示錯誤訊息的 Buoyancy FieldWave 腳本選項螢幕快照:著色器屬性未由材質公開。

範例 BasicWavyWaterSurface 著色器圖形可作為內容開發期間的待用專案,以及作為您自己著色器開發的起點。 或者,您可以採用現有的水面著色器、保留其 片段 路徑,並只取代其 頂點 路徑。

最大 Angular 速度

覆寫物理主體的預設最大角度速度。

偵測器中 Max Angular Velocity 腳本選項的螢幕快照。

物理引擎不允許剛性機超過這個角度速度。 這可能有助於限制給定剛性的滾動速度,或允許其滾動速度比物理預設值快,即每秒 50 弧度(大約每秒 8 次革命)。

最大角度速度必須以每秒弧度輸入。 輸入的值也會以每秒 180 度 (180 度 ≈ 3.14 弧度) 和每秒革命 (1 次革命 = 360 度≈ 6.28 弧度) 顯示。

速度大小欄位

允許殭化裝置的加速/減速,直到達到允許範圍內的速度為止。

偵測器中 [速度字段] 腳本選項的螢幕快照。

此元件會控制速度的大小,並保留目前的方向。 如果物件仍然存在,它會選擇一個框架持續時間的隨機方向。 作業有兩種模式:

  • 如果連接到一個僵硬的人,這個僵硬的人將被控制。
  • 如果附加至觸發程式碰撞器,所有進入此觸發程式音量的剛性主體都會受到影響。

設定

  • 速度類型 會定義我們正在處理線性或角度速度。
  • 速度限制 會以公尺/秒(或弧度/秒為單位,以角速度)設定所需的最小和最大速度限制。 如果目前的速度低於其速度下限,則如果速度超過主體將減速的最大值,則為 。 如果目前的速度已經在限制內,腳本就不會有任何作用。 若要設定特定的目標速度,請將最小值和最大值設定為相同的值。
  • 最大加速 定義套用到目標速度的最大加速。
  • 加速類型 會定義達到目標速度的加速類型。
    • 瞬間將立即達到速度限制(與最大加速 = 無限的常數加速相同)。
    • 常數加速可確保主體在 [最大加速] 設定的限制內達到目標速度。
    • Smooth 方法 可減少您接近目標速度的加速。 這表示實際上,您永遠不會達到目標速度。 此外,如果有任何外部影響,如上坡或下坡,這種額外的影響不會完全被覆寫,導致下坡速度比上坡快。
  • 受影響的主體針對受此元件影響的主體定義選擇性篩選條件 。 (根據預設,所有屍體都會受到影響。

對齊欄位

將主體對齊指定的座標軸。

偵測器中對齊欄位腳本選項的螢幕快照。

這個元件會增加身體的扭力,使其對齊特定方向。 請注意,向目標旋轉主體的方向一律套用扭力。 作業有兩種模式:

  • 如果附加在僵硬的人,這個僵硬的人將對齊。
  • 如果附加至觸發程式碰撞器,所有進入此觸發程式音量的剛性主體都會對齊。

設定

  • 硬體軸 會設定要對齊目標之受影響剛性的軸。
  • 對齊模式 提供不同的模式來指定目標對齊:
    • 在 [全域空間] 中,指定全域空間中的目標對齊方式。
    • 在 [本機空間] 中,指定本機空間 中的目標對齊方式(僅適用於觸發程式磁碟區)。
    • 主體對齊其線性速度的方向。
    • 針對 Game 物件 ,將主體對齊目標遊戲物件。
  • 目標對齊 會設定對齊的目標方向。 (僅限時機 對齊模式 設定為 [全域空間 ] 或 [本機空間]。
  • Target Game 物件 會設定對齊的目標方向。 (僅限時機 對齊模式 設定為 [走向遊戲物件]。
  • 扭力乘數 會調整套用的扭力以達到目標對齊;較高的乘數會更快旋轉身體(介於1到1000之間)。
  • 阻尼係數 會設定阻尼因數 (介於 0 到 5 之間)。 設定低於 1 時,本文可能會在目標方向周圍振蕩。

速度方向欄位

允許引導僵硬的人,直到速度達到目標方向。

偵測器中速度方向欄位腳本選項的螢幕快照。

此元件只會控制速度的方向,並維持目前的速度。 作業有兩種模式:

  • 如果連接到一個僵硬的人,這個僵硬的人將被控制。
  • 如果附加至觸發程式碰撞器,所有進入此觸發程式音量的剛性主體都會受到影響。

設定

  • 速度類型 會定義我們正在處理線性或角度速度。
  • 遵循 Game 物件 定義目標是預先定義的方向,還是特定 GameObject 的方向。 僅適用於線性速度。
  • 目標本文 (如果 追蹤遊戲物件 設定為 true):設定所需的追蹤方向。
  • 目標方向 會設定所需的方向。 此值已正規化,因此大小沒有作用。
  • 方向在本機空間 中定義是否在爆炸的局部轉換中指定方向。
  • 最大加速 定義套用到目標速度的最大加速。
  • 加速類型 會定義達到目標速度的加速類型。
    • 瞬間會立即到達目標方向(與最大加速 = 無限的常數加速相同)。
    • 常數加速可確保主體在 [最大加速] 設定的限制內達到目標速度。
    • Smooth 方法 可減少您接近目標速度的加速。 這表示實際上,您永遠不會達到目標速度。 此外,如果有任何外部影響,如上坡或下坡,這種額外的影響不會完全被覆寫,導致下坡速度比上坡快。
  • 受影響的主體針對受此元件影響的主體定義選擇性篩選條件 。 (根據預設,所有屍體都會受到影響。

磁體

給身體一個磁性屬性,以吸引或驅逐其他身體。

偵測器中磁體腳本選項的螢幕快照。

若要讓此元件能夠運作,它必須附加至一或多個碰撞器。 (這些碰撞器也可以巢狀在連結此元件之 下方 GameObject 的轉換階層中。每一次碰撞器都對接近這種碰撞器的其他僵硬體表現出一股力量。

設定

  • 強度 定義接觸點磁體的加速(當碰撞器之間的距離為零時)。
  • 影響 距離控制磁力的範圍。 只有在碰撞器之間的最短距離較小時,才會套用磁力。
  • 欄位類型 定義磁力如何隨著距離而減弱。
    • 常數 假設磁力與距離無關。
    • 線性 假設磁力從 強度 線性下降到零(在 影響距離)。
    • 反向 假設與距離成對比例的相依性。
    • 反平方 假設與距離平方成正比相依(類似於實際磁石)。
  • 磁極 控制被這個物件所吸引或擊退的物件。
    • 北極 吸引 南極 ,擊退 北極
    • 南極 吸引 北極 ,擊 退南極
    • 力吸引 南極北極
  • 停用重力對接觸:如果啟用,而磁力的強度是重力的兩倍,則與這種磁力接觸的身體會停用重力。 其中一個 對象必須是靜態物件,才能產生影響。 這通常用來防止屍體從牆上滑落。

球形爆炸

建立爆炸,導致特定半徑內的所有主體向外移動。

偵測器中球形爆炸腳本選項的螢幕快照。

爆炸力取決於僵硬體的品質(可能與爆炸中心距離)。

設定

  • 強度 定義爆炸對米/秒的屍體的影響。 實際速度變化會根據爆炸類型和關鍵質量而減少(請參閱下文)。
  • 影響 距離控制爆炸力的範圍。
  • 欄位類型 會定義爆炸效果如何隨著距離而減弱。
    • 常數 假設效果與距離無關。
    • 線性置放 假設效果從最大值下降到零(在 影響距離)。
  • 關鍵品質 定義了身體品質不受爆炸影響。 較重的身體感覺比較輕的身體少。 例如,重達關鍵品質三分之一的僵硬體會感受到速度變化三分之二。
  • Angular 脈衝尺規 會定義套用強制的位置。 如果設定為 0,強制會套用在品質中心,這表示沒有旋轉。 如果設定為 1,則會在爆炸最接近的點套用 force。
  • 遮蔽如果啟用,隱藏在其他物件後面的物件不會感覺到爆炸。 只有爆炸中心與品質中心之間的單一光線會檢查是否遮蔽。

方向爆炸

建立爆炸,導致觸發程式內的所有主體以特定方向移動。

偵測器中方向 Eplosion 腳本選項的螢幕快照。

爆炸力取決於僵硬的體質。 若要讓此元件能夠運作,它必須附加至觸發程式碰撞器。 觸發程式碰撞器內的所有主體都會受到影響。

設定

  • 強度 定義爆炸對米/秒的屍體的影響。 實際速度變化會根據關鍵質量而減少(請參閱下文)。
  • 方向 會定義爆炸的方向。 此值已正規化,因此大小沒有作用。
  • 方向在本機空間 中定義是否在爆炸的局部轉換中指定方向。
  • 關鍵品質 定義了身體品質不受爆炸影響。 較重的身體感覺比較輕的身體少。 例如,重達關鍵品質三分之一的僵硬體會感受到速度變化三分之二。
  • Angular 脈衝尺規 會定義套用強制的位置。 如果設定為 0,強制會套用在品質中心,這表示沒有旋轉。 如果設定為 1,則會在爆炸最接近的點套用 force。
  • 受影響的主體 會針對受此元件影響的主體定義選擇性篩選條件。 (根據預設,所有屍體都會受到影響。

聯合穩定

藉由調整剛性的慣性張量來穩定條件約束系統。

偵測器中聯合穩定腳本選項的螢幕快照。

此腳本適用於所有附加的硬體或聯合元件子系。

設定

  • 穩定因數 會定義您為穩定性犧牲身體正確性多少。 例如,1 -> 大部分是物理正確,4 -> 妥協,10 -> 穩定與成品。
  • 聯合投影 會啟用所有子系的條件約束投影。 這可以大幅改善穩定性,但犧牲了身體正確性。 它只適用於可設定和字元聯結。
  • 投影距離 會定義條件約束允許的最大違規。 若要避免物理問題,請嘗試盡可能設定此值。

彈跳表面

建立彈跳表面,讓所有碰撞物件都以預先定義的速度反彈。

偵測器中彈跳 Surface 腳本選項的螢幕快照。

設定

  • 彈跳速度大小 定義彈跳后物件的最小和最大速度大小。 如需如何判斷方向,請參閱 彈跳效果 。 如果您想要指定單一目標速度,請將MinMax設定為相等值。
  • 彈跳效果 會定義彈跳對象的預期行為。
    • 完美彈跳:對碰撞平面的傳入速度角度與傳出速度的角度相同。
    • 設定速度大小:傳出速度到正常的角度會受到摩擦的影響。
    • 設定標準速度:類似於 設定速度大小,但 彈跳速度大小 會定義與平面垂直的速度大小(正常速度)。
    • 向目標主體彈跳:傳出速度的方向會導向目標主體。 如果選取此選項, 就會顯示 [目標本文 ] 屬性,而且必須設定。
  • 摩擦 可控制碰撞時遺失多少正切速度。 當設定為 0 時,彈跳物件會保留正切速度。 當設定為 1 時,物件會朝表面垂直方向反彈(正切速度為 0)。 針對大於 1 的值,物件會向後反彈。

品質位移中心

位移僵硬體的品質中心。

偵測器中[品質位移中心] 腳本選項的螢幕快照。

設定

  • [本機座標 中的位移] 會定義本機座標中的位移。

區域物理範圍

此元件下階層中的所有固定主體都不會在客戶端之間同步處理。 此腳本應該新增至固定主體,其位置或旋轉是透過視覺腳本或動畫設定的。

偵測器中 [本機物理範圍] 設定的螢幕快照。

瞭解 Mesh Visual Scripting 物理事件節點

擲回軌跡

根據重力的影響,計算硬體在自由空間的未來位置。

偵測器中擲回軌跡腳本選項的螢幕快照。

設定

  • 硬體模式:當設定為 true 時,將僵硬體位置和速度視為初始條件。 啟用即時未來位置計算。
  • 硬體體(僅適用於固定體模式設定為 true):定義採取哪一個殭化的人。
  • 初始速度:(僅適用於固定體模式設定為 false 時):定義初始速度。 初始位置取自附加此元件之 GameObject 的位置。
  • 最大點數:定義計算點數目上限。
  • 時間步驟:定義未來位置之間的時間差異。
  • 重力:這是引力加速。
  • 線條轉譯器:指定要複製點位置的線條轉譯器。 這會顯示擲回軌跡。

重設主體轉換

當由可視化腳本觸發時,此元件會將相同轉換上所有物理主體的位置和旋轉,或任何子系轉換重設為其初始值。

偵測器中重設主體轉換元件的螢幕快照。

設定

  • 初始自動儲存:如果選取,請使用環境啟動時的轉換作為重設轉換。 如果未選取,您必須使用可視化腳本呼叫 Save Body Transforms Now 函式,以在執行重設之前儲存重設轉換。

視覺腳本可用的函式

  • 立即重設本文轉換:將此重設本文轉換元件範圍內所有物理主體的位置和旋轉重設為其最近儲存的重設轉換。 只在一個用戶端上叫用此專案。

[重設本文轉換] 元件的螢幕快照,其中 [重設本文轉換現在只在播放模式] 按鈕醒目提示。

[重設本文轉換] 元件的螢幕快照,其中已醒目提示 [重設本文轉換立即] 按鈕。

  • 儲存本文轉換現在 儲存此 重設本文轉換 元件範圍內所有物理主體的目前位置和旋轉,作為其重設轉換。 只在一個用戶端上叫用此專案。

下一步