Voor een schoolproject ben ik druk bezig met het programma Unity, waarin ik doormiddel van een JavaScript-je een window met daarin enkele gui-items wil tonen. Eerst heb ik geprobeerd om alle GUI-items afzonderlijk op het scherm te zetten, dat werkte eigenlijk perfect naar behoren, behalve dat het allemaal losstaande items waren. Dit was, dacht ik, vrij makkelijk op te lossen door er een window omheen te zetten, alleen geeft dat een heel raar probleem: Van de GUI-window is slechts een heel klein gedeelte zichtbaar. En op het moment dat met de muis in het zichtbare stuk window wordt gedrukt, is voor een 'miliseconde' het hele window te zien. Zodra de muis bewogen wordt of er op een toets wordt gedrukt binnen een tekstveld doet hij hetzelfde. Een (low-fps) filmpje van het probleem is te zien op: http://screenr.com/v97s
De onderstaande code is gebruikt:
De onderstaande code is gebruikt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| var naamText = "Vul hier je naam in"; var geslachtToolbar : int = 0; var plaatjeJongen : Texture2D; var plaatjeMeisje : Texture2D; var plaatjesArray : Texture2D[]; var customSkin : GUISkin; plaatjesArray = [plaatjeJongen, plaatjeMeisje]; function Start() { DoMyWindow(1); } function OnGUI () { GUI.skin = customSkin; GUILayout.Window (1, Rect(100,100,500,500), DoMyWindow, "Menu"); //DoMyWindow(1); } function DoMyWindow (windowID : int) { if (windowID == 1) { //Window met Naam en Jongen/Meisje GUILayout.BeginArea (Rect (0,0,400,400)); naamText = GUILayout.TextField (naamText); GUILayout.BeginHorizontal(); geslachtToolbar = GUILayout.Toolbar(geslachtToolbar, plaatjesArray, "Toolbar"); GUILayout.EndHorizontal(); if (GUI.Button (Rect (170,295,110,40), "Volgende")) { // Code om naar de volgende pagina te gaan } GUILayout.EndArea (); if (GUI.changed == true) { print("Op de GUI geklikt. Naam: " + naamText + ", Geslacht: " + geslachtToolbar); } } else if (windowID == 2) { // print("Pagina 2"); } else if (windowID == 3) { // } } |