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
1
Question by Will 1 · Jun 12, 2010 at 02:42 PM · collisionaudioplay

Play Random Sound On FPC Collision With Wall

Hi guys, I'm looking for a script to put on the First Person Controller that plays a random sound from a selection of audio clips when the FPC collides with a surface tagged 'Wall'.

I managed to assemble an OnControllerColliderHit script that did this but the sound played continuously until the player moved away from the wall. Anybody got a script that would play the sound just once until the player moved away then collided with the wall again?

Any suggestions will be greatly appreciated. Many thanks, Will

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

2 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by spinaljack · Jun 12, 2010 at 02:58 PM

You should use OnCollisionEnter instead of OnCollisionStay.

If that don't work you need to set a flag to prevent multiple activations e.g.

if(canPlay && hitWall){
   audio.Play();
   canPlay = false;
}

After an amount of time without touching the wall you can set can play to true again.

As for random sounds you can put all the sounds into an array and then call a random array item each time you hit a wall e.g.

var sounds : GameObject[];

function PlayRandomSound(){ Instantiate(sounds[Random.Range(0,sounds.length)],transform.position,transform.rotation); }

Depending on how you managed sounds

Comment
Add comment · 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
0

Answer by Kristen · Jan 06, 2011 at 05:38 PM

I have done something similar to this using OnCollisionEnter I believe. I had an array of AudioClips and I randomly picked on of the AudioClips and assigned it to a single AudioSource I had attached to my player. This way I could have all my settings set for my AudioSource (no looping, a set volume, 2D sound vs 3D sound, ect.) and I would just switch out the AudioClip and play the sound afterward.

Comment
Add comment · 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

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

1 Person is following this question.

avatar image

Related Questions

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

OnTriggerEnter - destroy (this.gameobject) if it collides with anything 2 Answers

Destroying a Character 2 Answers

How do I get a Not collision? 5 Answers

How do I delete an object on collision with another object? 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