Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by dar0307 · Jul 30, 2014 at 03:26 AM · randomaudioclipfor looprepeat

audioclip repeat randomly

Hi everyone, i'm trying to create a script where if you touch a gui.Button, an audioclip plays randomly, for instance, if you touch the button, the audioclip plays four times, if you touch it again, the audioclip plays twice and so on. can you help me, please?

this is what i have, but it doesn't work :( .

private int rdn; public bool showButton=true;

void OnGUI(){

if (showButton) {

if (GUI.Button (new Rect (Screen.width / 2, Screen.height / 2, 60, 60), "PLAY")) {

   rdn = Random.Range (1, 5);

 for (int i=0; i<rdn; i++) {

 audio.Play();

    Debug.Log("repeate: "+rdn);
             
                 
 }

  }

}

}

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by sethuraj · Jul 30, 2014 at 04:47 AM

Its very easy to do.Just play the clip.wait till it finishes and repeat the procedure again until it reaches the repeat count.You can use a coroutine for this.Here is an example

     //The Audioclip which we are playing
     public AudioClip Clip;
     //The AudioSource to which we are playing
     private AudioSource Source;
 
     void Start()
     {
         //Add the audiosource
         Source=gameObject.AddComponent<AudioSource> ();
     }
 
     void OnGUI()
     {
         //If the button is pressed
         if(GUI.Button(new Rect(10,10,70,30),"Play"))
         {
             //Stop currently playing audio
             Source.Stop();
             //You can also stop the courutine here
 
             //Start th coroutine with a random repeat range
             StartCoroutine("PlaySoundClip",Random.Range(1,5));
         }
     }
 
     //The coroutine in which we play our audio clip
     IEnumerator PlaySoundClip(int RepeatCount)
     {
         //Log out how many times we are going to play the clip
         Debug.Log (RepeatCount);
 
         //Loop until the repeat count
         for(int i=0;i<RepeatCount;i++)
         {
             //Play the audioclip as oneshot
             Source.PlayOneShot(Clip);
 
             //Wait until the clip has been finished playing
             yield return new WaitForSeconds(Clip.length);
         }
     }


Hop this helps....

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image dar0307 · Jul 30, 2014 at 03:38 PM 0
Share

it works perfectly, thanks a lot, I owe you one :D

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Random Audioclip. No Repeat ?? 1 Answer

How do I play a random sound each 5 seconds? 1 Answer

Randomly activated GUI Texture 1 Answer

Trying to avoid repeating elements on list (random.range) 1 Answer

Trying to solve an issue with a while loop to search to see if numbers are the same. Will explain in description. 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges