Hallo zusammen.
Ich habe mal wieder ein C++ Grundlagenproblem.
Ich versuche gerade eine bessere Chunkwelt zu erstellen. Ich bin jetzt nach und nach zu folgendem Vorgehen übergegangen.
Ich habe mir einen Actor gebaut, mit dem Namen Chunkloader. Der Chunkloader wird in der Welt platziert. In diesen Chunkloader möchte ich gerne den Chunkactor lade und sorgt dafür, dass Chunks halt in jede Richtung mehrfach, nach eingestellter Sichtweite, gespawned werden. Soweit die Theorie.
Der Chunkloader soll nun aber auch folgendes beinhalten, so will ich dort die Chunkgröße, ob die generierten Chunks eine Kollision haben sollen, und ob Schatten gecastet werden können einstellen.
Jetzt habe ich folgendes Problem. Der Chunkactor braucht diese Einstellungen eigentlich, denn dieser berechnet ja das Mesh, die Größe, ob Schatten gecastet werden und so weiter. Aber, wenn ich den Chunkactor halt im Chunkloader platziere, kann ich im Editor die Einstellungen nicht mehr machen, das könnte ich nur, wenn ich den Chunk ohne Loader platziere.
Deswegen wäre es für mich schön, wenn ich die Einstellungen des Loaders in dem Chunk ebenfalls benutzen könnte, sprich auf diese Einstellungen zugreifen könnte.
Das würde ich auch gerne so beibehalten, weil dann kann ich verschiedene Chunks erstellen und ein wenig ausprobieren, welche nun gut aussehen usw.
Im Chunkloader.h habe ich folgenden Code für die Einstellungen.
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AChunkLoader();
UPROPERTY(EditAnywhere, Category = "Tomarr|Chunks")
TSubclassOf<AActor> Chunk;
UPROPERTY(EditAnywhere, Category = "Tomarr|Chunks")
int DrawDistance = 5;
UPROPERTY(EditAnywhere, Category = "Tomarr|Chunks")
FIntVector ChunkSize = FIntVector(32, 32, 32);
UPROPERTY(EditAnywhere, Category = "Tomarr|Chunks")
bool CastShadows = true;
UPROPERTY(EditAnywhere, Category = "Tomarr|Chunks")
bool Collision = true;
Alles anzeigen
Oben ist dann die Möglichkeit den Chunk einzufügen, dann die Sichtweite, Chunkgröße, Schattencast und Kollision.
Funktioniert auch sehr gut, wenn ich den Loader platziere, kann ich entsprechende Einstellungen vornehmen.
Wenn ich jetzt jedoch einen Chunkactor anlege und will zum Beispiel die Variable ChunkSize benutzen, dann kann ich darauf nicht zugreifen, egal ob ich die ChunkLoader.h jetzt einfüge oder nicht.
Und während ich das alles hier beschreibe, kann es sein, dass ich da mit einem Interface besser bedient wäre?