using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Light), typeof(AudioSource))]
public class Flashlight : MonoBehaviour {
public AudioClip clickSound;
public float batteryLifeInSec = 300f;
public float batteryPercentage = 100;
private bool on;
private float timer;
void Update() {
Light lite = GetComponent<Light>();
timer += Time.deltaTime;
if(Input.GetKeyDown(KeyCode.F) && timer >= 0.3f && batteryPercentage > 0) {
on = !on;
audio.PlayOneShot(clickSound);
timer = 0;
}
if(on) {
lite.enabled = true;
batteryPercentage -= Time.deltaTime * (100 / batteryLifeInSec);
}
else {
lite.enabled = false;
}
batteryPercentage = Mathf.Clamp(batteryPercentage, 0, 100);
if(batteryPercentage == 0) {
lite.intensity = Mathf.Lerp(lite.intensity, 0, Time.deltaTime * 2);
}
if(batteryPercentage > 0 && batteryPercentage < 25) {
lite.intensity = Mathf.Lerp(lite.intensity, 0.5f, Time.deltaTime);
}
if(batteryPercentage > 25 && batteryPercentage < 75) {
lite.intensity = Mathf.Lerp(lite.intensity, 0.8f, Time.deltaTime);
}
if(batteryPercentage > 75 && batteryPercentage <= 100) {
lite.intensity = Mathf.Lerp(lite.intensity, 1, Time.deltaTime);
}
}
}
I can click F to turn the light on and off and it works. However the battery runs out and it remains on. No errors or anything. I’m using Unity 4.5.1 if anyone is wondering.