← SEARCHABLE ARCHIVE
Unreal Engine · 2026-07-12

為什麼六角形瓦片是由StaticMesh組成的?

ProceduralMesh並不總是需要的

INTERACTIVE READING MODE →

該部落格上撰寫的文章是出於教學目的而創建的。 另外,文章中的資訊可能不正確,請謹慎。

六角形圖塊也可以在運行時直接計算並製作成 ProceduralMesh。 但是,如果形狀是固定的,則沒有理由每次都建立頂點和索引。

ProjectTB 顯示圖塊UStaticMeshComponent改為基地。

UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
TObjectPtr<UStaticMeshComponent> TileMesh;

UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
TObjectPtr<UStaticMeshComponent> TileOutlineMesh;

UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
TObjectPtr<UStaticMeshComponent> CenterIconMeshComponent;

何時適合靜態網格物體

  • 運作時瓷磚形狀不會改變。
  • 重複使用在編輯器中建立的網格和 LOD。
  • 衝突和材料槽在資產中進行管理。
  • 多個圖塊共享相同的網格。

當地形本身發生變換或透過使用者輸入創建形狀時,ProceduralMesh 才有意義。 當您只需變更固定六邊形的大小和顏色時,靜態網格體會更簡單。

獨立的視覺狀態與遊戲規則

bool bIsMovementRangeHighlighted = false;
bool bIsAttackRangeHighlighted = false;

void SetRangeHighlights(
    bool bMovement,
    bool bAttack,
    FLinearColor MovementColor,
    FLinearColor AttackColor
);

網格規則決定是否可以移動,圖塊根據結果改變其材質顏色。 僅僅因為有 Mesh Component,就不需要在tile Actor 中包含路徑導航。

如果圖塊的數量變得很大,那麼 Actor 和組件的數量本身就會變成一種負擔。 在此階段,應審查綁定到 InstancedStaticMesh 或 HierarchicalInstancedStaticMesh 的方向。