Ok, danke.
Wenn es nur darum geht einen Butten anzuzeigen reicht das auch so.
Ich halte es halt so das jedes Objekt für sich arbeitet. Nach dem Motto "Ich will jetzt Interagieren, zeig mir deine Optionen".
Ok, danke.
Wenn es nur darum geht einen Butten anzuzeigen reicht das auch so.
Ich halte es halt so das jedes Objekt für sich arbeitet. Nach dem Motto "Ich will jetzt Interagieren, zeig mir deine Optionen".
Aus meiner Sicht benötigst du keine Variable und einen Tag. Das LineTrace gibt immer ein Ergebnis/Tick, also ist die erste Prüfung immer nur: "isValid".
Die zweite Prüfung ist, dass ein Tag: "Interaktion" beim Aktor vorhanden ist.
Der Actor vom LineTrace wird für diesen Zweck nicht abgespeichert. Dein Hinweis am unteren Bildschrimrand wird also nur dann eingeblendet, wenn der Tag "Interaktion" vorhanden ist ("hasTag"), was eine typische if/else Kondition ist.
Im Blueprint ist das der Flip/Flop mit der Verbindung des "AND", da der LineTrace am EventTick arbeitet, ändert er die Sichtbarkeit deines Buttons am unteren Bildschirmrand mit jedem Tick.
Die Interaktion selbst, gehört nicht in diesen Logikaufbau hinein, da die Logik über die Sichtbarkeit des Interaktionshinweises in sich abgeschlossen ist und auch nicht von weiteren Bedingungen abhängt.
Wie wäre es mit einem simplen Beispiel?
Ich versteh da nur Bahnhof.
Wenn das Event ausgeführt wird gibt es ja noch die Referenz auf das Objekt.
Hab mal noch ein Bool in die Interface-Funktion eingebaut. Besser als die aus dem Char zu holen.
Du hast das jetzt so übernommen, prüfst aber gar nicht mehr ob es das richtige Objekt ist.
Das mit dem Interface sollte auch gehen. Beim ersten mal draufschauen sendest du eine Message und bevor du das Objekt aus der Variablen entfernst sendest du wieder eine.
Die Funktion SendMessage halt mit dem Interface-Event ersetzen.
Ich hoffe es geht so, ist schon spät.
Ich meine ich habe die Variable beim wegschauen nicht mehr leer bekommen.
Einfach SetVariable und nix in den Eingang.
Wird den das Event ausgeführt?
Könnte mir vorstellen das beim zerstören des Levels auch sämtliche Logik nicht mehr ausgeführt wird.
Weil das Ganze in der Gameinstanz aufgerufen wird. Dadurch brauche ich die Events dann nur mit dem Button aufrufen.
Ist zwar alles noch recht experimentell, aber ich erhoffe mir damit eine noch bessere Trennung von Code und Design.
Interessante Möglichkeit, aber wenn ich deinen Code warten müsste wäre das die letzte stelle an der ich suchen würde.
Was spricht gegen eine einfache Funktion?
Wenn du sie nicht im Widget haben möchtest lege eine FunctionLibrary an oder erstelle eine Widget-Klasse mit den entsprechenden Methoden von der dann geerbt wird.
Dann kannst du es an so vielen Stellen benutzen wie du möchtest.
Ich mache es immer so dass das entsprechende Widget mit "Set Visibility" auf/zu gemacht wird. So funktioniert "IsValid" eigentlich ohne Probleme. Mir wäre zumindest nicht bekannt das es bei mir vorher nicht ging.
Keine Ahnung was du da machst aber wenn in der Variablen das Widget ist wird es immer Valid sein, unabhängig ob das Widget Visible ist oder nicht.
Wie bewegst du den deinen Zug?
deswegen habe ich eine zusätzliche camera in der pawn bp schlangenkopf eingefügt,
Vielleicht ist es heute zu warm aber ich sehe nur eine Kamera.
Wenn die Kamera am Spring-Arm deine 3D Kamera ist, dann kannst du ja an der Rotation des Spring-Arm sehen wohin der Spieler schaut und dementsprechend die Bewegung übersetzen.
Wenn der Spieler nach rechts schaut und vorwärts drückt dann muss du es so umsetzen das jetzt zB. +Y vorwärts ist und nicht +X.
Du hast zwei Möglichkeiten, Rotation oder Forward-Vector. Nimm das was für dich mathematisch einfacher ist.
Genau, so kannst du deine Modelle mit verschiedenen Materialien belegen. Alle Holz-Teile mit einem Holzmaterial zB..
Gerade erst bemerkt das gar nicht vom Mixer die Rede war.
Naja hilft ja vielleicht doch.
Das scheint der Weg über Substance Painter flexibler zu sein. Da kann ich nämlich auch einzelne Polygone direkt mit einem Material belegen.
Ein Möglichkeit UVs/Polygone als Maske zu verwenden fehlt leider im Mixer.
Ist es möglich dort einzelne Materialien auf bestimmte Polygone zu legen?
Dazu musst du in deinem 3D Programm mehrere Material-Slots anlegen, die stehen dir dann auch in der UE4 zur Verfügung.
Im Mixer hast du die Möglichkeit mit ID-Masks zu arbeiten, wie im Painter auch. Ist halt mehr Arbeit im 3D Programm.
Oder du legst mehrere Materialien an und kannst dann im Mixer mit Layer-Sets arbeiten. Beim Export wird dann für jedes Material ein Textur-Set exportiert.
Du machst es uns auch nicht einfach.
Ich habe jetzt ehrlich gesagt keine Lust dir zu erklären was da alles falsch ist und habe dir mal ein simples Beispiel gebaut.
Erstmal wie mein Inventar aussieht.
Links das Grid und rechts die Beschreibung.
Dann habe ich das Beispiel von weiter vorne nochmal erweitert und übergebe dem Slot-Widget die Referenz auf die VertikalBox wo die Beschreibung angezeigt wird
Im Slot-Widget erstelle ich noch zusätzlich das Widget für die Beschreibung und bei den Maus-Events wird es der VertikalBox hinzugefügt oder entfernt.
Und hier noch das Beschreibungs-Widget.
Super einfaches Beispiel und hoffentlich leicht nachzuvollziehen.
Versuch das einfach noch mal neu zu machen und beschäftige dich noch mal mit den Grundlagen.