Dami1302 Geschrieben 21. April 2019 Melden Share Geschrieben 21. April 2019 Hallo, ich habe ein Problem bei einem Slider also einem Schieberegler. Ich habe ein Mini Game wo ich Munition benötige. Über den Schieberegler möchte ich die Anzahl der Munition bestimmen. Leider weiß ich nicht wie ich den Wert des Schiebereglers benutzen kann um ihn in einen anderen Skript als Munition einsetzen zu können. Ich hoffe jemand kann mir helfen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 25. April 2019 Melden Share Geschrieben 25. April 2019 in dem Script wo du die Munition hast: public int munition; public void setMunition(int muniUpdate) { munition = muniUpdate; } jetzt einfach unterhalb deines Sliders auf das + klicken, in dem leeren Feld dein Objekt hineinziehen wo dein Script drauf ist, dann als Funktion setMunition auswählen. habs jetzt nicht getestet, müsste aber so gehen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dami1302 Geschrieben 25. April 2019 Autor Melden Share Geschrieben 25. April 2019 Leider funktioniert es immer noch nicht Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. April 2019 Melden Share Geschrieben 25. April 2019 "Funktioniert nicht" ist ne ganz schlechte Fehlerbeschreibung. Ein paar mehr Infos wären sicherlich hilfreich. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 25. April 2019 Melden Share Geschrieben 25. April 2019 @Dami1302 Geht wirklich nicht, der Slider mag irgendwie keine int Variable, verwende stattdessen einen float: public class scrMunition : MonoBehaviour { public int munition =0; public void setMunition(float muniUpdate) { munition = Mathf.RoundToInt(muniUpdate); } } jetzt hast du wenn du im Slider auf dein Objekt gehst wo das Script drauf ist die Auswahl für dynamic float, wähle das an, dann müsste es passen. Bei mir geht es so. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dami1302 Geschrieben 25. April 2019 Autor Melden Share Geschrieben 25. April 2019 So sieht mein Script aus: #pragma strict //für die Kugel var bullet : GameObject; //die Geschwindigkeit der Kugel var bulletSpeed : int = 1000; //für die Ausgabe var ammoLabel : UI.Text; public var munition : int; function Fire() { //eine neue Kugel abhängig vom Objekt erzeugen var myBullet:GameObject = Instantiate(bullet, transform.position, transform.rotation); //Kraft anwenden in die Aufwärtsrichtung, dadurch bewegt sich die Kugel myBullet.GetComponent.<Rigidbody>().AddForce(this.transform.up * bulletSpeed); //eine Kugel weniger munition--; //die Kugel nach 1 Sekunde zerstören Destroy(myBullet, 1); } function Update () { //beim Loslassen abfeuern if(Input.GetButtonUp("Fire1") && munition > 0) Fire(); ammoLabel.text = "Munition: " + munition; } Benutzt habe ich dann die Funktion Fire () Ich arbeite mit Javascript. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 25. April 2019 Melden Share Geschrieben 25. April 2019 Uff, also mit Java habe ich noch nie etwas gemacht. Die Funktion Fire() bringt dir aber in dem Fall gar nichts, du möchtest ja mit deinem Slider nicht schiessen Dir fehlt auf jedenfall die entsprechende Funktion in deinem Script. Irgendwas wie: function setMunition (float muniUpdate) { munition = Mathf.RoundToInt(muniUpdate); } Aber wie das jetzt genau in java aus zu sehen hat bin ich überfragt🙃 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dami1302 Geschrieben 25. April 2019 Autor Melden Share Geschrieben 25. April 2019 Ok trotzdem danke. Vielleicht kann ja noch jemand anders Helfen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 25. April 2019 Melden Share Geschrieben 25. April 2019 @Jomnitech Wir reden hier von UnityScript, das ist ein JavaScript-Fork, und beides hat mit Java nix am Hut. @Dami1302 UnityScript benutzt man heute einfach nicht mehr. Einfach... gar nicht. Aber wenn du vor dem Unmstieg auf C# noch dieses Script brauchst... function SetMunition(newMunition : float) { munition = Mathf.RoundToInt(newMunition); } Wenn's damit noch Probleme gibt... benutze C#. Solltest du, wie gesagt, sowieso. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Dami1302 Geschrieben 26. April 2019 Autor Melden Share Geschrieben 26. April 2019 Vielen Dank. Ich werde mal versuchen ob es funktioniert. Leider wird mir bei meinem Kurs JavaScript vorgegeben. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 26. April 2019 Melden Share Geschrieben 26. April 2019 Dann hast du da leider keinen guten Kurs. Versuche, so viel davon mitzunehmen wie du kannst, und dann such dir ggf. noch einmal einen richtigen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.