Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/LightRays2DAbstract.cs
2026-03-04 10:03:45 +08:00

135 lines
2.3 KiB
C#

using UnityEngine;
public abstract class LightRays2DAbstract : MonoBehaviour
{
private Material mat;
public Color color1 = Color.white;
private Color _color1;
public Color color2 = new Color(0f, 0.46f, 1f, 0f);
private Color _color2;
[Range(0f, 5f)]
public float speed = 0.5f;
private float _speed;
[Range(1f, 30f)]
public float size = 15f;
private float _size;
[Range(-1f, 1f)]
public float skew = 0.5f;
private float _skew;
[Range(0f, 5f)]
public float shear = 1f;
private float _shear;
[Range(0f, 1f)]
public float fade = 1f;
private float _fade;
[Range(0f, 50f)]
public float contrast = 1f;
private float _contrast;
private void Start()
{
InitializeReferences();
_color1 = (color1 = mat.GetColor("_Color1"));
_color2 = (color2 = mat.GetColor("_Color2"));
_speed = (speed = mat.GetFloat("_Speed"));
_size = (size = mat.GetFloat("_Size"));
_skew = (skew = mat.GetFloat("_Skew"));
_shear = (shear = mat.GetFloat("_Shear"));
_fade = (fade = mat.GetFloat("_Fade"));
_contrast = (contrast = mat.GetFloat("_Contrast"));
}
protected virtual void Update()
{
GetReferences();
if (AnythingChanged())
{
mat.SetColor("_Color1", color1);
mat.SetColor("_Color2", color2);
mat.SetFloat("_Speed", _speed);
mat.SetFloat("_Size", _size);
mat.SetFloat("_Skew", _skew);
mat.SetFloat("_Shear", _shear);
mat.SetFloat("_Fade", _fade);
mat.SetFloat("_Contrast", _contrast);
}
}
private void InitializeReferences()
{
if (mat == null)
{
GetReferences();
mat = GetMaterial();
}
}
protected abstract void GetReferences();
protected abstract Material GetMaterial();
protected abstract void ApplyMaterial(Material material);
private bool AnythingChanged()
{
bool result = false;
if (_color1 != color1)
{
_color1 = color1;
result = true;
}
if (_color2 != color2)
{
_color2 = color2;
result = true;
}
if (_speed != speed)
{
_speed = speed;
result = true;
}
if (_size != size)
{
_size = size;
result = true;
}
if (_skew != skew)
{
_skew = skew;
result = true;
}
if (_shear != shear)
{
_shear = shear;
result = true;
}
if (_fade != fade)
{
_fade = fade;
result = true;
}
if (_contrast != contrast)
{
_contrast = contrast;
result = true;
}
return result;
}
}