- Home /
Question by
samaxi · Jan 26, 2014 at 04:30 PM ·
javascriptaudiosound
Play sound when out of ammo
I want it so when my player has 0 bullets in clip to play audio "ImOut" but I don't have to working, what I have so far is when bulletsinclip = 0, it doesn't play the sound, it only plays the sound when I reload. The reason I have 2 scripts is because on my Gun script I have the gun fire sound, and on my ImOut gameobject I have the ImOut audio source
my scripts
Gun Script
#pragma strict
var damage:float = 38;
var range = 100.0;
var force = 10.0;
var muzzleFlash : Renderer;
var muzzleLight : Light;
var UMPMenu: GUIStyle;
var ReloadMenu: GUIStyle;
static var ImOut = false;
var ReloadWarning = false;
var cameraTransform: Transform;
static var _UMPCanReload = false;
var clipSize: int = 25;
var bulletsInClip = 25;
var bulletsLeft = 75;
var allowfire : boolean = true;
function Start (){
muzzleFlash.enabled = false;
muzzleLight.enabled = false;
}
function Update () {
if(Input.GetMouseButton(0)){
if(bulletsInClip >= 1){
if(allowfire == true){
fire();
}
}
}
if(bulletsInClip == 0){
ImOut = true;
}
if (Input.GetKeyDown (KeyCode.R)){
if(bulletsInClip == 0){
if(bulletsLeft >= 25){
Reload();
}
}
}
if(bulletsInClip == 0){
if(bulletsLeft >= 25){
ReloadWarning = true;
}
} else {
ReloadWarning = false;
}
if(bulletsInClip == 0){
if(bulletsLeft >= 25){
_UMPCanReload = true;
}
} else {
_UMPCanReload = false;
}
}
function OnGUI() {
if(ReloadWarning == true){
GUI.Label (Rect (Screen.width / 2.2, Screen.height / 2.5, 200, 200), "Press R to reload.", ReloadMenu);
}
GUI.Label (Rect (10, 650, 350, 350), "UMP .45", UMPMenu);
GUI.Label (Rect (10, 700, 350, 350), bulletsInClip + " / " + bulletsLeft, UMPMenu);
}
function fire(){
allowfire = false;
audio.Play();
bulletsInClip--;
var direction = transform.TransformDirection(Vector3.forward);
var hit : RaycastHit;
// Did we hit anything?
if (Physics.Raycast (cameraTransform.position, cameraTransform.forward, hit)) {
Debug.DrawRay(transform.position, direction * range);
// Apply a force to the rigidbody we hit
if (hit.rigidbody)
hit.rigidbody.AddForceAtPosition(force * direction, hit.point);
hit.collider.SendMessageUpwards("ApplyDamage", damage, SendMessageOptions.DontRequireReceiver);
}
muzzleFlash.renderer.enabled = true;
muzzleLight.enabled = true;
yield WaitForSeconds (0.04);
muzzleFlash.renderer.enabled = false;
muzzleLight.enabled = false;
yield WaitForSeconds(0.2);
allowfire = true;
}
function OnTriggerEnter(hit:Collider){
if(hit.tag == "Enemy"){
hit.transform.SendMessage("Damage",damage);
}
}
function Reload(){
allowfire = false;
yield WaitForSeconds (1);
bulletsInClip = clipSize;
bulletsLeft = (bulletsLeft - clipSize);
yield WaitForSeconds (0.3);
allowfire = true;
}
UMPImOut script
function Update () {
if(UMP.ImOut == true){
audio.Play();
UMP.ImOut = false;
}
}
Comment
Your answer
Follow this Question
Related Questions
play sound when moving stop sound when not 1 Answer
Need Audio To Stop When I Touch a Game Object. 1 Answer
Play Audio While Button is Held Down 1 Answer
Vehicle help 1 Answer
Audio Needs to stop 1 Answer