- Home /
How to have sound effects overlap?
So I'm still kinda new to C# but I'm making a simple asteroid game and I'm trying to have it so when an asteroid explodes, the sound effect doesn't abruptly cut off before another asteroid gets hit. I was looking around and I saw that PlayOneShot(); would have worked for overlapping sounds but it's somehow not in my case.
Any help would be greatly appreciated! Thank you very much in advance :)
Here's the code for my involved scripts: (Audio Manager)
using UnityEngine.Audio;
using UnityEngine;
using System;
public class AudioManager : MonoBehaviour
{
public Sounds[] sounds;
void Awake()
{
foreach (Sounds s in sounds)
{
s.source = gameObject.AddComponent<AudioSource>();
s.source.clip = s.clip;
s.source.volume = s.volume;
s.source.pitch = s.pitch;
}
}
public void Play(string name)
{
Sounds s = Array.Find(sounds, sound => sound.name == name);
s.source.Play();
}
public void PlayOne(string name)
{
Sounds s = Array.Find(sounds, sound => sound.name == name);
s.source.PlayOneShot(); // ERROR HERE. Says 'No overload method for PlayOneShot' takes 0 arguments
}
(Game Manager)
public class GameManager : MonoBehaviour
{
//Relevant function
public void asteroidDestroyed(Asteroid asteroid)
{
FindObjectOfType<AudioManager>().PlayOneShot("Rock Explosion"); // And this is what I'm trying to call in from the Audio manager script
this.explosionEffect.transform.position = asteroid.transform.position;
this.explosionEffect.Play();
}
Answer by unity_ka6jgzfPPmtNCw · Nov 12, 2021 at 01:24 AM
PlayOneShot requires at least one parameter with a second optional. AudioSource.PlayOneShot
try s.source.PlayOneShot(audioClip);
where audioClip is what audio clip you want to play.
Oh, that worked! Thank you very much! Never thought it'd be that simple lol.
Your answer
Follow this Question
Related Questions
synchronized sound on collision script 1 Answer
One Slider Control More Than One Sound 1 Answer
Hearing all distant audio sources (loud!!) on play (solved) 1 Answer
Problem with sound 0 Answers
3D sound is not working. 0 Answers