Materials
概述
每個 物理主體 都需要一個 物理材質 (一個Quantum資料資產)。物理材質持有對於物理引擎而言必要的屬性,以處理碰撞、力與速度的整合。
物理材質資料資產
物理材質持有下列的參數:
- 回復(有時稱為「反彈性」,或「反彈」)
- 回復結合功能
- 靜態摩擦
- 動態摩擦
- 摩擦結合功能
如果槽中沒有 物理材質 資產,將指派預設物理材質;預設物理材質是在 模擬設定 物理設定中連結的材質。
一個 物理材質 資產可被直接指派到一個 物理碰撞器:
C#
var material = f.FindAsset<PhysicsMaterial>("steel");
collider.Material = material;
f.Set(entity, collider);
重要注意事項
一個 物理材質 是一個資料資產,並且位於Quantum資產資料庫之中。因為資產不是可復原遊戲狀態的一部分,因此每個 物理材質 被認為是在運行階段不可變的。在遊戲運行時改變其屬性將導致非確定性的行為。
物理材質 跟隨與其他資料資產相同的規則。
C#
// this is NOT safe and cannot be rolled-back:
collider->Material.Restitution = FP._0;
// switching a reference is safe and can be rolled back:
var newMaterial = f.FindAsset<PhysicsMaterial>("ice");
collider->Material = newMaterial;
結合功能
結合功能用於針對各個碰撞合管(一個碰撞對)來處理回復及摩擦,其基於結合功能的優先順序。物理系統將從兩個碰撞器中選擇最高優先的功能。
優先順序是:
- 最大值
- 最小值
- 平均值
- 乘數
舉例而言:使用一個帶有碰撞器A及碰撞器B的碰撞合管。碰撞器A的物理材質有一個 回復結合功能 設定為 最大值,同時碰撞器B的物理材質將其設定為 平均值。因為 最大值 比 平均值 有更高的優先性,針對這個碰撞的回復將使用 最大值 功能來處理。
同樣的邏輯適用於 摩擦結合功能。
請注意: 摩擦結合功能 及 回復結合功能 被分開處理,並且因此帶有不同的設定。
Back to top