5b8ebb7a35
testing
63 lines
1.4 KiB
C#
63 lines
1.4 KiB
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
[RequireComponent (typeof (Detonator))]
|
|
[AddComponentMenu("Detonator/Light")]
|
|
public class DetonatorLight : DetonatorComponent {
|
|
|
|
private float _baseIntensity = 1f;
|
|
private Color _baseColor = Color.white;
|
|
private float _scaledDuration = 0f;
|
|
private float _explodeTime = -1000f;
|
|
|
|
private GameObject _light;
|
|
private Light _lightComponent;
|
|
public float intensity;
|
|
|
|
override public void Init()
|
|
{
|
|
_light = new GameObject ("Light");
|
|
_light.transform.parent = this.transform;
|
|
_light.transform.localPosition = localPosition;
|
|
_lightComponent = (Light)_light.AddComponent ("Light");
|
|
_lightComponent.type = LightType.Point;
|
|
_lightComponent.enabled = false;
|
|
}
|
|
|
|
private float _reduceAmount = 0f;
|
|
void Update ()
|
|
{
|
|
|
|
if ((_explodeTime + _scaledDuration > Time.time) && _lightComponent.intensity > 0f)
|
|
{
|
|
_reduceAmount = intensity * (Time.deltaTime/_scaledDuration);
|
|
_lightComponent.intensity -= _reduceAmount;
|
|
}
|
|
else
|
|
{
|
|
if (_lightComponent)
|
|
{
|
|
_lightComponent.enabled = false;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
override public void Explode()
|
|
{
|
|
if (detailThreshold > detail) return;
|
|
|
|
_lightComponent.color = color;
|
|
_lightComponent.range = size * 50f;
|
|
_scaledDuration = (duration * timeScale);
|
|
_lightComponent.enabled = true;
|
|
_lightComponent.intensity = intensity;
|
|
_explodeTime = Time.time;
|
|
}
|
|
|
|
public void Reset()
|
|
{
|
|
color = _baseColor;
|
|
intensity = _baseIntensity;
|
|
}
|
|
} |