Jump to content
Unity Insider Forum

GameObjekt bei anklicken frage ob was tun soll


MAThieuAT

Recommended Posts

Ich hab da mal wieder eine Frage ich würde gerne einem GameObjekt hinterlegen das wenn Gamer es anklickt ein Frage dem Gamer gestellt wird und wenn ein Auswahl Feld anklicke das dann etwas passiert Aktion oder nicht.

wie setzt ich das am besten um wenn es verschiedenste GameObjekte gibt auf die ich das anwenden möchte und jedes eine andere Aktion hat.

 

(Aktion immer: GameObjekt Collider wird Trigger abgeschaltet der für Mausklick gedacht ist und das Gamobjekt wird von transparent voll sichtbar,
Aktion unterschiedlich: in einem Textfeld soll der Zahlen wert sich verändern, sollte dort nicht die gewünschte Menge sein dann soll "Aktion immer" nicht ausführbar sein. Die gewünschte Menge sollt im Game Objekt hinterlegt werden.)

Wie könnte ich das angehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Generell machst du "gleiche aber doch unterschiedliche Dinge" damit, dass du deinem Script "serialisierte Felder" gibst. Als Anfänger schreibt man eher

public int number;

später eher

[SerializeField]
private int number;

Der Unterschied ist erstmal nicht so wichtig.

Du kannst jetzt dein Script mehrere Male auf irgendwelche GameObjects ziehen und jedes Mal eine andere Zahl in dieses Feld eingeben. Damit könntest du jetzt schon unterschiedliches Verhalten definieren. Aber statt einer Zahl kannst du auch komplexere Sachen serialisieren. Eine praktische Sache dafür ist das UnityEvent. Hast du schonmal UI-Dinge gemacht? Wenn du da einen Button erstellst, kriegst du im Inspektor des Buttons eine Box angezeigt, in die eine Liste kommt. Diese Liste ist gefüllt mit den Dingen, die passieren sollen, wenn der Button gedrückt wird. Das ist ein UnityEvent. Und so eines kannst du auch in dein eigenes Script packen.

Einfach

[SerializeField]
private UnityEvent onClick;

in dein Script packen und oben

using UnityEngine.Events;

nicht vergessen. Dann taucht im Inspektor deines Scripts auch so eine Box auf. Was auch immer in dieser Box steht, wird ausgeführt, wenn das Event ausgelöst wird. Und das machst du wiederum in deinem Script, mit

onClick.Invoke();

Du kannst also diese Zeile vor oder hinter deinen Code packen, der sich um das "Aktion immer" kümmert. Und dann richtest du "Aktion unterschiedlich" im Inspektor des jeweiligen Objekts ein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...