Jump to content
Unity Insider Forum

GUItext.Name Keine reaktion?


Recommended Posts

Hallo freunde,

habe mal wieder ein Kleines Problem.

Versuche mir das mit den Guis bei zubringen, bisher leider ohne erfolg.

umzwar gehts darum, das wenn die gondelbremse Aktiviert ist, Dieses auch in dem Namen Feld Steht, bzw in einem zusätzlichen Gui zustande kommt.

die Gondelbremse geht auch, alles wunderbar.

Nur bekomm ich den Gui Inhalt nicht dazu sich vom wert/text her zuändern.

 

 

Hier mal ein Script von mir:

 


function OnGUI() {
if(gondelrem == 1){
targetGuiText.text = "Aktiviert";
}else{
targetGuiText.text = "Deaktiviert";
}
}

 

 

 

die funktion habe ich einfach unters hauptscript der bremse gepackt,

ohne reaktion wenn ich taste der gondelbremse drücke.

 

 

ich hoffe mir kann hier einer helfen.

ich weis es ist keine sehr große sache, aber mit Guis Befasse ich mich grad zum ersten mal.

 

hier das bild dazu. post-4699-0-87549400-1403081863_thumb.png

der eintrag Aktiv wurde in Guifeld eingetragen, da die bremse beim starten sowieso aktiv ist. jetzt müsste die gui es nur switchen lassen, aber das tut sie nicht :-(

 

Danke vorab.

Ps ein allgemeiner tipp wegen den GUIS, wäre auch schon sehr hilfreich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

targetGuiText ist richtig zugewiesen?

 

wenn du dich wirklich auf eine GuiText Komponente beziehst brauchst du den Code auch nicht in ein OnGUI packen

sondern kannst die Abfrage einfach z.B. ins Update schreiben.

 

Ansonsten sehe ich keine Fehler, würde eben folgendes checken:

wird "gondelrem" richtig gesetzt?

ist das targetGuiText RICHTIG zugewiesen ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

static var gondelrem = 1;
var icur : float = 0.0;
var remswitch = 1;
var targetGuiText : GUIText;
function WaitForFixedUpdate() {
  var gondelpositie = transform.localEulerAngles.y;
}
function FixedUpdate(){
  var gondelpositie = transform.localEulerAngles.y;
  icur = gondelpositie;
  if(gondelrem == 1) {
  if(icur > 359 || icur < 1) {remswitch = 1; }
  }
  if(gondelrem == 1 && remswitch == 1){
  hingeJoint.motor.force = 5000;hingeJoint.useMotor = true;
  targetGuiText.text = "Aktiviert";
  }else{
  if(gondelrem == 0){gondelrem = 1;}else{gondelrem = 0;remswitch = 0;}
  }
}
function OnGUI() {
if(gondelrem == 1){
targetGuiText.text = "Aktiviert";
}else{
targetGuiText.text = "Deaktiviert";
}
}

 

habe für die die gondelbremse 2 Guis.

1 mit dem Namen: 1 für den wert. der mit dem wert wurde hinzugewiesen. aber keine reaktion..

bin mir aber nicht so sicher, weil das etwas neuland ist.

 

habs auch schon per update versucht, ebenfalls ohne erfolg. :/

bin in dem sinne, noch zu neu.

 

so sieht das an der gondel aus

lol1.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also so wie ich es sehe, ist dein gondelrem maximal ein fixedUpdate auf 0. Das ist ziemlich kurz.

 

Erste Abfrage:

Wenn gondelrem =1 dann auch remswitch auf 1 falls nicht größer 356 oder keiner 0.

Zweite Abfrage:

Wenn gondelrem=1 und remswitch auch 1 dann mache was.

 

Wenn aber eines von beiden nicht 1 ist, dann frage dies hier ab:

Fall1 gendelrem ist 0 also mach sie zur 1

Fall2 gondelrem ist 1 und remswitch ist 0 also mach gondelrem zu 0 und remswitch zu 0

 

Somit ist gondelrem zu Anfang auf 1 und bleibt auch auf 1 weil remswitch 1 ist und 1 bleibt. ( remswitch war mit 1 deklariert und wird auch nicht zurück gesetzt)

Würde iegendwie remswitch auf 0 gesetzt werden, so würde auch gondelrem auf 0 gesetzt.

Im nächsten fixedUpdate würde aber gondelrem wieder auf 1 gesetzt.

 

Ja und ein fixedUpdate ist schnell vorbei. ich könnte wetten dass du die Textänderung nicht siehst.

 

Vielleicht irre ich mich ja, aber so habe ich den Code jetzt interpretiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...