Auf Einstellungen eines anderen Actors zugreifen?

  • 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.

    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?

  • Also mit Interfaces funktioniert es schonmal nicht. Ich hatte mich schon gewundert, dass die beiden einzigen Bücher, wo Interfaces überhaupt kurz beschrieben werden, nur mit Funktionen arbeiten, liegt wohl dann doch daran, dass Interfaces nur mit Funktionen funktionieren, und nicht mit Variablen. 8o


    Zumindest haut er mir eine Fehlermeldung raus, dass Variablen in Interfaces nicht erlaubt sind.


    Aber irgendetwas muss es doch geben, wenn ich das in den einen Actor packe und auch in den anderen Actor, dass sie sich dann die Werte der Variablen teilen. Components vielleicht? Mein Problem ist halt, meine Bücher für die Unrealengine C++ sind nur auf Englisch, also Bücher, die ich nicht unbedingt von vorne nach hinten durchlese, sondern sie lieber wie ein Nachschlagewerk auf Stichwortbasis benutze. Vielleicht hat ja jemand das richtige Stichwort für mich.


    Wenn ich das Ganze noch ein wenig weiter spinne, wäre es vielleicht sogar ganz gut, wenn man nur einen Actor in den Chunkloader platzieren könnte, der dann auch diese Erweiterung hat. Dann währen Fehlnutzungen auch etwas mehr ausgeschlossen.