- Home /
help with multiple sounds
Hi all, I'm having a problem with sounds... I have these two scripts below. One for a sound when the player presses the mouse button to do a gunshot sound, and the other to play a sound on hit of the object.
At the moment I am only hearing the gunshot sound. I have a seperate audiosource for the molehit sound but still its not playing (I think it's to do with the gunshot cancelling out the other sound) can anyone see where I'm going wrong please?
scripts:
gun shot sound script:
var mySound: AudioClip;
function Update(){
if(Input.GetMouseButtonUp(0)){
audio.clip = mySound;
audio.Play();
}
}
mole hit script:
private var ray : Ray;
private var rayCastHit : RaycastHit;
var mySound: AudioClip;
var bloodPrefab : GameObject;
function Update(){
if(Input.GetMouseButtonDown(0)){
ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, rayCastHit)){
//add name of object/button to affect in ""
if(rayCastHit.transform.name == "mole_1_shoot"){
audio.clip = mySound;
audio.Play();
var rot = Quaternion.FromToRotation(Vector3.up, rayCastHit.normal);
Instantiate(bloodPrefab, rayCastHit.point, rot);
Debug.Log ("hit mole 1 shoot!");
}
}
}
}
Are these scripts attached to the same object? If so, an audiosource can only play one sound at a time. The alternative is to have an audiosource attached to any object that could emit a sound.
I edited your script layout, it was very hard to read =]
are these scripts on the same gameObject using the same audio source? if not, are separate sounds applied to each audiosource and var mySound? Does the Debug show if you raycast the mole? is the mole hit script further away from the audio listener?
The easiest fix may be PlayOneShot : http://docs.unity3d.com/Documentation/ScriptReference/AudioSource.PlayOneShot.html
How far is the mole from the camera? If it is very far away you may very well not hear the sound. Perhaps try:
AudioSource.PlayClipAtPoint(mySound, at the player or the camera's position); http://docs.unity3d.com/Documentation/ScriptReference/AudioSource.PlayClipAtPoint.html
the gunshot script is attached to a script manager object, the mole hit one is attached to the moles, I increased the max distance on the sound so that it covered my main cam (audio listener)
it's the $$anonymous$$ distance you should adjust higher. Better yet, select the clip itself from the project panel and change it to 2d sound
anything above the $$anonymous$$ distance will start to drop off
try switching the clips (swap them) and see if you hear the same one, then you'll know
Your answer
Follow this Question
Related Questions
Help Playing "Sound Clip" on RayCastHit? (RayCast help?) 2 Answers
Can anyone help me modify this script? (C#) 2 Answers
Continuous RayCast on GetButtonDown 0 Answers
Finding when a Ray isn't hitting anything? 1 Answer
Calculating rhythm of any music? 3 Answers