- Home /
Dynamic collision sound system (c#)
What would be the easiest way to create a dynamic sound system for collisions, Such as other engines have collision sounds on a material type level. Or is there a system like this in unity, Or one around that I can see how it was done? I have googled (probably bad seach terms) and have come up with nothing about a system like this.
Could you clarify your needs? You want to play a sound when two objects collide, but you want the sound to be different based on the object material? It will depend on your architecture. How are you creating the objects that collide? Are they separate prefabs or the same or created in the editor at deign time? If two different prefabs, I would just assign the sound to each prefab, then play it on collision. If this is for mobile, then you need to preload the sounds in a memory pool to prevent freezing during the collision. I use a Unity plugin for that and recommend it, called Audio Toolkit.
It is certainly possible to do this within your Unity game. If Unity doesn't have material associated with F$$anonymous$$OD, you will just need to write your own class that deter$$anonymous$$es the material and plays the sound with audio.PlayOneShot
Answer by Josh707 · Nov 18, 2013 at 10:01 PM
This may not be the best way but it is fairly simple, you can use OnCollisionEnter and take the relative velocity from the collision class to play different impact audio clips depending on the amount. You can also use the relative velocity to set the volume for small collisions.
You can achieve the material specific sounds by just having both objects that collide play a sound that suits their object, or like others have said, check the physic material with and play a corrosponding audio clip.
Another contributing factor for realism is sliding, you can also use OnCollisionStay to determine if the object is sliding, and adjust a looping slide sounds volume and pitch accordingly.
Your answer
Follow this Question
Related Questions
Distribute terrain in zones 3 Answers
Audio on Collision not working C# 0 Answers
Sound plays right at the beginning 2 Answers
Sounds triggering too fast 4 Answers
Further collision beyond the OnCollisionEnter() event 1 Answer