rotbartdesign.berlin Geschrieben 28. August 2012 Melden Share Geschrieben 28. August 2012 Hallo "einfache" Sache: Ich habe drei Gamemodes für den Player A, B und C jeder Status soll eine eigene Mukke haben also einen Audioclip. ich habe mir drei voids gemacht, hier eine davon: public void AUDIO_normal() { if(GameStatic.status == GameStatic.GameModus.NormalMode) { audio.clip = BaseAudio; audio.Play(); audio.loop = true; } } und so WOLLTE ich sie steuern: if(Input.GetKey(KeyCode.Alpha1)) { if(GameStatic.status != GameStatic.GameModus.NormalMode) { GameStatic.status = GameStatic.GameModus.NormalMode; if(GameStatic.status == GameStatic.GameModus.NormalMode) { AUDIO_normal(); } } } if(Input.GetKey(KeyCode.Alpha2)) { if(GameStatic.status != GameStatic.GameModus.MeleeMode) { GameStatic.status = GameStatic.GameModus.MeleeMode; if(GameStatic.status == GameStatic.GameModus.MeleeMode) { AUDIO_melee(); } } } if(Input.GetKeyUp(KeyCode.Alpha3)) { if(GameStatic.status != GameStatic.GameModus.DistanceMode) { GameStatic.status = GameStatic.GameModus.DistanceMode; } if(GameStatic.status == GameStatic.GameModus.DistanceMode) { AUDIO_distance(); Wie so oft: GEHT NICHT Suche nun nach einer einfachen schnellen Lösung die Sounds wiederzugeben bei Statuswechsel... weils schon so drinsteckt vielleicht mit switch Case lösen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 28. August 2012 Melden Share Geschrieben 28. August 2012 Boah! Was machst du denn da? Du fragst ab ob der Status nicht normalMode ist. Ist das der Fall, setzt du den Status auf normalMode. Nur um jetzt nochmal abzufragen ob der Status denn nun auch wirklich normalMode ist. Da dem so ist (haste ja eben erst so gesetzt) springst du in eine Void und fragst das Gleiche nochmla ab??? JungeJunge! Du traust scheinbar nix und niemanden! EInmal abfragen und evtl. setzen schicket ja wohl. Außerdem ist ne Void, aus der nur von einer Abfrage her reingesprungen wird unsinnig. Da kannste auch gleich den Code in deine Abfrage mit rein tun. Und damit du nicht ständig die Abfrage ausführst, wenn du die Taste drückst, solltest du die Tastenabfrage und den Status zusammenabfragen. Nur wenn Taste xy gedrückt und der Status nicht so und so ist, dann setze den Status auf so und so und starte einmalig den Sound. if(Input.GetKey(KeyCode.Alpha1) && GameStatic.status != GameStatic.GameModus.NormalMode){ GameStatic.status = GameStatic.GameModus.NormalMode; audio.clip = BaseAudio; audio.Play(); audio.loop = true; } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
rotbartdesign.berlin Geschrieben 28. August 2012 Autor Melden Share Geschrieben 28. August 2012 negativ Sir! die doppelten Sachen seh ich ein. Aber zum Beispiel in Peteys gängigen und bekannten Tuts zu Hack and Slash (Burg Zerg Arcade) werden sehr sehr häufig leere Voids geschrieben weil es für den einen oder anderen einfach sauberer ist bla bla... Und nein das war schon bedingt absicht: der Status ändert sich nur bei Tastendruck, daher setz ich ihn da gleich auch. Die != Abfrage sollte nur den Status setzen wenn er nicht aktiv ist damit ich durchschalten kann... whatever. Das ganze schaltet jedenfalls die Statis durch aber spielt dennoch die Mukke nich ab ich teste nochmal Deinen Tip... UPDATE ==> Mission failed: if(Input.GetKey(KeyCode.Alpha1) && GameStatic.status != GameStatic.GameModus.NormalMode) { GameStatic.status = GameStatic.GameModus.NormalMode; audio.clip = NormalModeAudio; audio.Play(); audio.loop = true; } if(Input.GetKey(KeyCode.Alpha2) && GameStatic.status != GameStatic.GameModus.MeleeMode) { GameStatic.status = GameStatic.GameModus.MeleeMode; audio.clip = MeleeModeAudio; audio.Play(); audio.loop = true; } if(Input.GetKey(KeyCode.Alpha3) && GameStatic.status != GameStatic.GameModus.DistanceMode) { GameStatic.status = GameStatic.GameModus.DistanceMode; audio.clip = DistanceModeAudio; audio.Play(); audio.loop = true; } die Statis schalten durch die Mukke spielt nichtmehr ab... nochn Update meine Abfrage war richtig weil es nach der Schreibweise ja sagt => bla bla && wenn != Statusx is => status anmachen und sound spielen. man MU? hier nochmal fragen ob das auch nun so ist... in diesem Sonderfall scheint man ohne definierte Statis nicht drumrum zu kommen anderer Ansatz möglich? Die Statis vorher klar definieren? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
rotbartdesign.berlin Geschrieben 28. August 2012 Autor Melden Share Geschrieben 28. August 2012 Habs im Start hab ich das Standard zugewiesen dann geht alles an und aus auch ohne doppelte Abfrage man ist halt dadurch ertsmal gleich in einem Zwischenstati gewesen durch die Schreibweise.. Aber SOLVED...wie immer wars ein 30 Zentimeter Problem... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 28. August 2012 Melden Share Geschrieben 28. August 2012 Na siehste. Das was du da mit den Stati machst, kann ich von hier ja nicht sehen. Wäre es eine normale Variable gewesen hätte es auch ohne vorheriges setzen auf einen Status funktionieren müssen. Ein Void wegen der übersicht zu erstellen, kann man machen, ist aber bei großen Scripts dann doch nicht mehr übersichtlich. Denn dann geht erstmal das Gesuche nach der Void los um zu sehen, was da denn überhaupt gemacht wird, wenn mal ein Fehler aufgetreten ist. Ich persönlich sehe eine Unterfunktion eigentlich als Codeersparnis an. Wenn ich also bei mehreren Bedingungen immer das Gleiche ausführen will, springe ich von diesen Abfrage in die Funktion rein. Ich teile also den Code mit anderen Abfragen und brauch ihn nur einmal schreiben. Genauo nutze ich das um große Funktionen vom Code zu trennen. Aber bei 3 Zeilen, die nur von einer Seite her bearbeitet werden, mache ich das nicht. Da mach ich das doch eher so, dass ich extra Scripte nutze. Also in deinem Fall ein Soundscript, wo ich dann in eine Funktion rein springe oder was sich selber organisiert, wenn sich eine Static Var irgendwo ändert. WIe gesagt. Ist meine persönliche Herangehensweise. Ich scripte auch alleine und brauch den Code deswegen nicht modular aufbauen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AgentCodeMonk Geschrieben 28. August 2012 Melden Share Geschrieben 28. August 2012 schau mal hier: http://www.blog.silentkraken.com/ ..da gibts nen audiomanager und nen nen manager system... danach kannste alles schick in einer zeile machen... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
rotbartdesign.berlin Geschrieben 29. August 2012 Autor Melden Share Geschrieben 29. August 2012 Jungs Ihr seid der Knaller! @Malzbie alles tutti... verstehe das auch so aber mir fehlt wohl noch die Scripterfahrung um diese Sachen klar auszufilterm und aufzubauen das lernt man ja mit der Zeit 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.