為什麼六角形瓦片是由StaticMesh組成的?
ProceduralMesh並不總是需要的
該部落格上撰寫的文章是出於教學目的而創建的。 另外,文章中的資訊可能不正確,請謹慎。
六角形圖塊也可以在運行時直接計算並製作成 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 的方向。