碰撞和追蹤總結

關於碰撞的參數:


Simulation Generates Hit Events: 設置是否生成Hit事件。

Generate Overlap Events: 是否生成Overlap重疊事件。

碰撞預設值相當於定義好的模板數據一樣,選擇不同的預設值下面的碰撞信息不同。

每個Actor都有一個Object Type,值可以爲:WorldStatic,WorldDynamic,Pawn,PhysicsBody,Vehicle,Destructible.

追溯響應:

這裏設置的值的意思在於當程序調用LineTraceByChannel或者MultiLineTraceByChannel的時候(這兩個函數需要指定Trace Channel,值爲Visibility或者Camera,其實兩個值就是兩個通道而已),這裏值對於不同Channel做出的不同的響應,忽略,重疊或者阻擋。

LineTraceByChannel 函數返回的是追蹤線上第一個阻擋Actor信息,MultiLineTraceByChannel函數返回的是追蹤線到第一次阻擋Actor之間的所有重疊(忽略的不管)actor信息(當然也包括那個阻擋的actor.);

重新回到Actor設置這個值的意義上:


這裏設置不同的值就是告訴引擎,當有關於LineTraceByChannel或者MultiLineTraceByChannel查詢的時候,我這個Actor關於不同的Channel的響應是什麼樣的。

 

物體響應:

這個好理解,用一個圖舉例:


這個ActorObjectTypeWorldDynamic,跟其他WorldStaticWorldDynamicPhysicsBody,Destructible是阻擋的,跟其他Pawn,或者Vehicle是可以重疊的。

碰撞的特殊情況:

  • 兩個(或多個)設爲 Block 的 Actors 之間將自然生成 阻擋(Blocking)。然而,執行 命中事件(Event Hit) 需啓用 Simulation Generates Hit Events,此功能用於藍圖、可摧毀 Actor、觸發器等資源中。
  • 將 Actors 設爲 Overlap 通常看起來他們將 無視 對方。如未啓用 Generate Overlap Events,兩種設置在本質上相同。
  • 對兩個(或多個)相互阻擋的模擬物體而言,需將兩者設爲對其各自的物體類型進行阻擋。
  • 對兩個(或多個)模擬物體而言,如一個設爲重疊,另一個設爲阻擋,兩者間將出現重疊,而非阻擋。
  •  在物體 阻擋 其他物體時,仍然 可以 產生重疊,尤其是在高速運動狀態下。
  • 不推薦爲物體同時設置碰撞和重疊事件。但可以進行手動調整。
  • 如一個物體設爲無視,另一個設爲重疊,將不會產生重疊事件。

利用LineTraceForObjects MultiLineTraceForObjects 可以追蹤線上所有滿足ObjectType條件的並且Collision Enabled支持查詢的Actor(假如設置的是No Collision 或者Physics Only的話,是追蹤不到的)。這兩個函數只跟ActorObject Type和 Collision Enabled有關,跟Acotr與其他Actor是忽略,重疊還是阻擋是沒有關係的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章