Random FPS player Audio when player kills enemies

Is there way to have my FPS player play random audio clips whenever he kills and enemy? I was thinking something along the lines of the old Duke Nuke em games where sometimes he would say "That's Gotta Hurt"

or

"Id buy that for a Dollar"

etcetera

I was up late last night trying to figure out how something like that could be done but I'm still trying to wrap my head around this script stuff.

4 Answers

4

Psuedo: Have an array of sounds... Or a List as people here like more.. W/e it's the same.

Get a random number in the array, each array spot has its own sound, so if you have 10, get a number between 1 and 10, and then play that when you kill someone... That make sense? So every kill, it gets a new number, which is a "new" sound...

that is a really good way :)

i know this is not my question but i would like to know how to call the arrays it the first time that i am using them. I just created a variable that is called RandomSound: AudioClip[]; now if i press Input key (S) what code will you put there to cycle trough the sounds ? please help me as well lol thanks :) and thank you Michael for the wonderful question :)

I would go with a random number generating system and have different voices for different numbers. I'm not exactly and expert when it comes to random generating but I got the idea from DOS. How in dos many games were random. but here's a little snip it of what

create an audio array. and pretend your when your player dies you call this function

function playDeathSound()
{
deathSounds.Play[Random.Range(0, deathSounds.length)]();
}

This might work only if for when my player makes a kill, not gets killed. Y'know He shoots a Zombie alien and then says "That's gotta hurt!" Maybe blasts another one with a rocket launcher and then says "Oooh, he made a mess!" And so on...

With that basically make a script attached to the zombie and when it dies use GameObject.Find("whatever").GetComponent("whatever").playKillSound();

Try this it works for me :

      using UnityEngine;
using System.Collections;

public class PlayMusic : MonoBehaviour {

    public AudioClip[] Tracks;

        // Update is called once per frame
        void OnGUI () {

            if (GUI.Button(new Rect(10,20,120,20),"Play Tracks")){
                audio.Stop();
                audio.PlayOneShot(Tracks[Random.Range(3,Tracks.Length)]);
                //audio.clip = Tracks[0];
                   //    audio.Play();
            }

        }
    }

it was similar to Fierce Waffle answer mines basically plays when you click on the GUI button :)