このような感じでいかがでしょうか。
メインのスクリプト。
C#
1using UnityEngine;
2
3// 複数の「AudioSourceを持つゲームオブジェクト」からランダムに選択し、音を鳴らす
4public class RandomAudioPlayer : MonoBehaviour
5{
6 private GameObject[] audioObjects;
7
8 private void Start ()
9 {
10 // タグでAudioSourceを持つゲームオブジェクト(複数)を見つける
11 audioObjects = GameObject.FindGameObjectsWithTag ( "AudioObject" );
12 }
13
14 private void Update ()
15 {
16 // マウスの左クリック
17 if ( Input.GetMouseButtonDown ( 0 ) )
18 {
19 // ランダムにオブジェクトを選択
20 var audioObject = audioObjects[Random.Range(0, audioObjects.Length)];
21
22 // AudioSourceをPlay
23 audioObject.GetComponent<AudioSource> ().Play ();
24
25 // AudioSourceを持つゲームオブジェクトにアタッチしておいたスクリプトからIDを取得する
26 var audioSourceId = audioObject.GetComponent<AudioSourceID>().audioSourceID;
27 print ( audioSourceId );
28 }
29 }
30}
こちらは個々の「AudioSourceを持つゲームオブジェクト」にアタッチするスクリプト。
C#
1using UnityEngine;
2
3public class AudioSourceID : MonoBehaviour
4{
5 public string audioSourceID;
6}
7
インスペクター等のイメージはこんな感じ。