Code für unity zum aufrufen eines Inventars per Taste?
Hallo, hat jemand nen Code, der in meinen Fall per Tastendruck auf ,,Q" ein Inventar im Spiel aufruft und solange offen bleibt, bis man Q erneut drückt. Das Spiel im Hintergrund sollte nicht pausiert werden.
Danke schonmal :)
2 Antworten
Ich möchte hier eigentlich nicht fertige Scripts Posten damit sie einfach kopiert werden, also erkläre ich es dir ziemlich simpel (ich werde den fertigen code trotzdem verlinken aber ich will dass man hier was lernt statt nur kopiert)
Ich würde in die Canvas ein "Empty GameObject" einlegen in der man alle anderen UI Objekte des Inventars als Childobjects hinzufügt. Danach macht man eine Variable, die das Inventar GameObject im Script darstellt (im Inspector hinzufügen nachher ;) ), und eine Bool Variable die man z. Bsp. IsInvOpen nennt, welche standartmässig auf false gesetzt werden muss.
Nun prüft man ob die Taste Q gedrückt wurde, falls ja , dann überprüft man mit einem zweiten if-statement ob das Inventar schon geöffnet ist indem man den Bool überprüft (false = geschlossen, true = geöffnet) wenn es geschlossen, also false ist, öffnet/aktiviert man das Inventar Fenster und setzt IsInvOpen auf true. Bei dem else-statement vom Bool (also in der Tastenüberprüfung) ienfach umgekehrt also IsInvOpen auf false setzen und das Fenster schliessen
Hier der fertige Code: https://pastebin.com/cMNLCmc8
Nicht vergessen die Sachen im Inspector zu referenzieren.
ach ja statt Inventory.SetActive(true/false) kann man natürlich auch was anderes reinmachen, wie z. Bsp. eine Animation aber das müsst ihr selber machen :)
Sollte vermutlich das sein was du meinst.