- Home /
Question by
charaypro · Dec 27, 2014 at 04:43 PM ·
randomsoundrandomizerandomization
Random Sound When Click?
Random Sound When Click? Hi Unity Community iam making a game in unity 3d and playing around with some sounds. what iam trying todo its make a ramdom sound when click or move like in RTS or Moba iam more with modelling and sounds creations but weak with code my friend gave me this script but only works with one sound like move only playing one sound here its my question. How do i make this script to work with select move or attack have a random sounds
thanks in advance enjoy the holiday best regard charay
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using RUnit;
namespace RUnit {
[RequireComponent (typeof (Unit))]
public class UnitAudio : MonoBehaviour {
public AudioClip selectSound;
public AudioClip moveSound;
public AudioClip EngineSound;
public AudioClip attackSound;
public AudioClip hitSound;
public AudioClip destroySound;
//~ private AudioSource audioSrc;
// Use this for initialization
void Awake () {
//~ audioSrc=gameObject.GetComponent();
//~ if(audioSrc==null){
//~ audioSrc=gameObject.AddComponent();
//~ audioSrc.playOnAwake=false;
//~ audioSrc.loop=false;
//~ }
Unit unit=gameObject.GetComponent();
if(unit!=null) unit.SetAudio(this);
//else DestroyImmediate(this);
}
public void Select(){
if(selectSound!=null)AudioManager.PlaySound(selectSound);}
public void Move(){
if(moveSound!=null)AudioManager.PlaySound(moveSound); AudioManager.PlaySound(EngineSound); }
public void Attack(){
if(attackSound!=null)AudioManager.PlaySound(attackSound); }
public void Hit(){
if(hitSound!=null)AudioManager.PlaySound(hitSound); }
public float Destroy(){
if(destroySound!=null){
AudioManager.PlaySound(destroySound);
return destroySound.length;
}
return 0;
}
}
}
Comment
change your variables to be AudioClip arrays, then you can get a random index by doing someAudioClipArray[Random.Range(0, someAudioClipArray.Length)];