58 lines
1.1 KiB
C#
58 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
namespace Artngame.SKYMASTER
|
|
{
|
|
public class LightFlash : MonoBehaviour
|
|
{
|
|
public float delay = 1.5f;
|
|
|
|
private float cur_time;
|
|
|
|
private Light this_light;
|
|
|
|
private float start_emit_time;
|
|
|
|
private bool emits;
|
|
|
|
public float emit_time = 1f;
|
|
|
|
public float speed = 1f;
|
|
|
|
private PerlinSKYMASTER noise;
|
|
|
|
private void Start()
|
|
{
|
|
cur_time = Time.fixedTime;
|
|
this_light = GetComponent<Light>();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (noise == null)
|
|
{
|
|
noise = new PerlinSKYMASTER();
|
|
}
|
|
float num = Time.time * speed * 0.1365143f;
|
|
float num2 = Time.time * speed * 1.21688f;
|
|
float num3 = Time.time * speed * 2.5564f;
|
|
if ((Time.fixedTime - cur_time > delay) & !emits)
|
|
{
|
|
start_emit_time = Time.fixedTime;
|
|
emits = true;
|
|
cur_time = Time.fixedTime;
|
|
}
|
|
if (emits)
|
|
{
|
|
if (Time.fixedTime - start_emit_time <= emit_time)
|
|
{
|
|
this_light.intensity = (float)Random.Range(1, 3) * noise.Noise(num + this_light.intensity, num2 + this_light.intensity, num3 + this_light.intensity);
|
|
return;
|
|
}
|
|
emits = false;
|
|
this_light.intensity = 0f;
|
|
start_emit_time = 0f;
|
|
}
|
|
}
|
|
}
|
|
}
|