¿Por qué los mosaicos hexagonales están compuestos de StaticMesh?
ProceduralMesh no siempre es necesario
Los artículos escritos en este blog fueron creados con el objetivo de enseñar. Además, la información del artículo puede ser incorrecta, así que tenga cuidado.
Los mosaicos hexagonales también se pueden calcular directamente en tiempo de ejecución y convertirlos en ProceduralMesh. Sin embargo, si la forma es fija, no hay razón para crear vértices e índices cada vez.
ProjectTB muestra mosaicosUStaticMeshComponentCambiado a base.
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
TObjectPtr<UStaticMeshComponent> TileMesh;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
TObjectPtr<UStaticMeshComponent> TileOutlineMesh;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
TObjectPtr<UStaticMeshComponent> CenterIconMeshComponent;
Cuando StaticMesh es adecuado
- La forma del mosaico no cambia mientras se ejecuta.
- Reutilice la malla y el LOD creados en el editor.
- Los conflictos y los espacios de materiales se gestionan en activos.
- Varios mosaicos comparten la misma malla.
ProceduralMesh es significativo cuando el terreno en sí se transforma o cuando se crean formas con la entrada del usuario. StaticMesh es más sencillo cuando simplemente cambias el tamaño y el color de los hexágonos fijos.
Separar el estado visual y las reglas del juego.
bool bIsMovementRangeHighlighted = false;
bool bIsAttackRangeHighlighted = false;
void SetRangeHighlights(
bool bMovement,
bool bAttack,
FLinearColor MovementColor,
FLinearColor AttackColor
);
Las reglas de la cuadrícula determinan si es posible el movimiento y el mosaico cambia el color del material según el resultado. Solo porque hay un componente de malla, no es necesario incluir la navegación de ruta en el actor del mosaico.
Si la cantidad de mosaicos aumenta, la cantidad de actores y componentes en sí misma puede convertirse en una carga. En esa etapa, se debe revisar la dirección de enlace a InstancedStaticMesh o HierarchicalInstancedStaticMesh.