Jump to content
Unity Insider Forum

MaZy's Blog

  • Einträge
    14
  • Kommentare
    32
  • Aufrufe
    46.233

GUISystem Tagebuch #1


MaZy

984 Aufrufe

Hallo,

ich habe angefangen eigenes GUI System zu schreiben. Ich wollte vieles automatisieren und erleichtern. Kleines Beispiel. Ich möchte nicht jedes mal selbst rechnen, um alles zu zentrieren oder ich möchte nicht so viele if Bedingungen mit Buttons haben.

Darum habe ich ein Anlass gehabt um sowas zu machen um dann für meine Projekte das zu verwenden.

Ein Bespiel. Ich redete von Buttons.
So sieht das aus zur Zeit aus

[img]http://puu.sh/aUU8U/b74342c5d5.png[/img]
(Menü-Skripte)

[img]http://puu.sh/aURfV/7a1bc7cfe9.jpg[/img]

Kleines Beispiel mit einem Video
[url="http://garrysmod.zulu907.server4you.de/sharex/imgs/2014-08-16_15-57-01.mp4"]http://garrysmod.zul...16_15-57-01.mp4[/url]

Aufgebaut ist dieser Code nur so (Der Rest kommt vom GUISystem selbst):

[img]http://puu.sh/aURwB/c93243a057.png[/img]

[color=#0000ff]CreateVerticalButtons(bool center, float space, Rect r, params string[] buttons)[/color]

Wie man hier sieht erstelle ich hier automatisch Buttons durch eine Funktion. 3 Items Play, Option, Und Quit wurde erstellt.
Sie alle geben ein ID zurück wenn was geklickt wurde. Ansonsten ist es immer -1.

Außerdem lasse ich mit Open oder Close die Menüs anzeigen oder verstecken.

So wenn ich in Option Menü bin.


[img]http://puu.sh/aUTPg/037c4ed754.png[/img]

Schaut euch die markierte Zeile an. Ein Extension erlaubt mir die Rect-Klasse mit Methoden zu erweitern. Und das schöne ist halt, dass ich jedes mal mit einem "." eine weitere Methode dranhängen kann. Ich zentriere es vertical und lasse es dann nach unten Andocken. Da ich aber sage -10f hoch (man muss das als Ursprungspunkt beachten, darum - 10 hoch) wirds etwas nach oben verschoben.

Man kann es getrennt schreiben aber zur Zeit hab ich damit ein Bug. Lösung wird gesucht.

Ergebnis:

[img]http://puu.sh/aUTYr/15e3596847.jpg[/img]

Schön oder?

Schlusssatz. Ein bissel Zeit sollte man schon opfern, bevor man das eigentliche Anfängt :P

(Da das eine Anfangsphase ist, kann es natürlich in den nächsten Blogeinträgen zu Veränderungen kommen bzw. kann bereits in den Screenshots eine Abweichungen vorhanden sein..).

NACHTRAG: Besseres Video
[url="http://garrysmod.zulu907.server4you.de/sharex/imgs/2014-08-16_16-53-32.mp4"]http://garrysmod.zulu907.server4you.de/sharex/imgs/2014-08-16_16-53-32.mp4[/url]

5 Kommentare


Recommended Comments

Ich weiß nicht ob ich es übersehen habe, aber die neue uGui ist doch eigentlich sehr 3D bezogen oder? Werde es ja wohl nicht immer brauchen. Besonders bei 2d Spielen nciht so.
Link zu diesem Kommentar
Das neue Unity UI (ehemals uGUI) funktioniert als 2D GUI (wenn beim Canvas der Render Mode auf "Screen Space" steht), und für 3D GUIs (wenn Render Mode auf World Space steht). D.h. das kann man auf jede erdenkliche Art und Weise verwende (außer wenn man vektor-basierte GUIs möchte - dann wäre wohl eher NoesisGUI das Tool der Wahl ;-) ).

Was auch praktisch ist: Unity UI ist zumindest von der Bedienung her sehr nah an Unity 2D dran. Da muss man sich dann nicht zu sehr umstellen, wenn man viel mit Unity 2D arbeitet.
Link zu diesem Kommentar
Gast
Kommentar schreiben...

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