- Home /
How to change monster sounds based on distance?
I would like the monster to have a normal sound play on loop with maybe a 5 second delay in between loops and then when the monster gets to be a certain distance from the player, say 25m, it will change sounds to an attack sound until the player moves out of range.
I've been messing around trying to get it to work for a few days and I'm just at a loss. Any ideas?
Do you just have a sound dragged over in the Inspector? PlayOnAwake and Loop? If so, there's no way to have that switch sounds. Need to write a script.
If you have a script already, it's easy, assu$$anonymous$$g you know scripting. Just look up "detect if enemy is nearby" and "how to play a sound," and combine those.
Answer by OtsegoDoom · Apr 22, 2014 at 06:10 PM
You can use sqrMagnitude to find the distance between 2 objects in space. (https://docs.unity3d.com/Documentation/ScriptReference/Vector3-sqrMagnitude.html)
Then just run that in a coroutine ( yield WaitForSeconds(5.0); ) that checks every 5 seconds (or whatever time you want) to see if the player is within a certain distance, if they are, play the new sound, if not play the old sound.
Your answer
![](https://koobas.hobune.stream/wayback/20220613143322im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
Sprinting Audio Problem 1 Answer
Save game support, how do I load audio in a sertain time frame? 0 Answers
How to get sound to play on certain condition (javascript) 2 Answers
How do you Play sound without having to load it In Inspector? 2 Answers