swat243 Geschrieben 23. November 2014 Melden Share Geschrieben 23. November 2014 Ich habe ein Audioclip " walking " der 8 sekunden lang geht,ich hab das Problem wenn ich AudioPlayClipAtPoint verwende das,wenn ich stop das die audiosource weiter spielt bissie zuende ist. dann hab ich das hier veruscht aber das geht uach nicht void Update () { if (Input.GetKeyDown (KeyCode.W)) { audio.clip = walking; audio.Play(walkingSOUND); } if (Input.GetKeyUp (KeyCode.W)) { audio.clip = walking; audio.Stop(); } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 23. November 2014 Melden Share Geschrieben 23. November 2014 AudioClipAtPoint kann so nicht gehen, da ein Soundobjekt instanziert wird, welches so lange Spielt bis der Sound zuende ist und sich dann selbst zerstört. Mit audio.Play() und audio.Stop() geht sowas schon. Du schreibst, dass mit deinem gezeigten Code es nicht geht. Ja was geht nicht? So wie ich den Code lese, startet der Sound sobald du die W Taste runter drückst. Und sobald du sie gehen lässt, hört der Sound auf. Willst du das so? Übrigens, audio.Clip musst du nur vor dem Play setzen, damit die Audiosource auch weiß, welcher Clip gespielt werden soll. Bei Stop brauchst du das nicht machen, denn es ist egal, welcher Clip gerade läuft. Er wird gestoppt. Ach so!!! Du sagst einmal dass der Clip der walking Clip sein soll, hast aber dann im Play WALKINGSOUND drin? Was versprichst du dir davon? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
swat243 Geschrieben 25. November 2014 Autor Melden Share Geschrieben 25. November 2014 Es geht ich hab auf der Website von UNITY geguckt public AudioClip walking; void Update () { if (Input.GetKeyDown (KeyCode.W)) { audio.clip = walking; audio.Play(); } if (Input.GetKeyUp (KeyCode.W)) { audio.Stop(); } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
NodKane Geschrieben 15. Dezember 2014 Melden Share Geschrieben 15. Dezember 2014 In Unity 5 muss man etwas ändern. Hier hast du auch noch einen kleinen Random Script bei public AudioClip[] WalkingClips; //Hier kann man ganz viele Clips rein machen void Start() { GetComponent<AudioSource>(); // Ab Unity 5 } void Update () { if (Input.GetKeyDown (KeyCode.W)) { int n = Random.Range(1,WalkingClips.Length); GetComponent<AudioSource>().PlayOneShot(WalkingClips[n]); WalkingClips[n] = WalkingClips[0]; WalkingClips[0] = GetComponent<AudioSource>().clip; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 15. Dezember 2014 Melden Share Geschrieben 15. Dezember 2014 Das ergibt in meinen Augen relativ wenig Sinn. Warum sollte man den clip der AudioSource in sein Array packen? Erklärung bitte! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
NodKane Geschrieben 16. Dezember 2014 Melden Share Geschrieben 16. Dezember 2014 Das ergibt in meinen Augen relativ wenig Sinn. Warum sollte man den clip der AudioSource in sein Array packen? Erklärung bitte! Der Script soll mit dem Array soll verhindern das der gleiche Clip ein zweites mal hintereinander gespielt wird. Für einen Walking Script hört sich das besser an. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 16. Dezember 2014 Melden Share Geschrieben 16. Dezember 2014 Ah, verstehe. Kann man wohl so machen. Setzt PlayOneShot wirklich den clip neu? Hätte ich nicht gedacht. 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.