2019-10-06 13:04:50 +00:00
|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
[RequireComponent(typeof(Particle))]
|
|
|
|
public class Hue : MonoBehaviour
|
|
|
|
{
|
|
|
|
protected Gradient _possibleColors;
|
|
|
|
|
|
|
|
protected Particle particle;
|
|
|
|
protected Material material;
|
|
|
|
|
2019-10-06 15:44:41 +00:00
|
|
|
protected Color color;
|
|
|
|
|
2019-10-06 13:04:50 +00:00
|
|
|
protected void Awake() {
|
|
|
|
particle = GetComponent<Particle>();
|
|
|
|
material = new Material(Shader.Find("Custom/HSVRangeShader"));
|
|
|
|
}
|
|
|
|
|
|
|
|
public Gradient PossibleColors {
|
|
|
|
get {
|
|
|
|
return _possibleColors;
|
|
|
|
}
|
|
|
|
set {
|
|
|
|
_possibleColors = value;
|
2019-10-06 15:44:41 +00:00
|
|
|
color = _possibleColors.Evaluate(Random.value);
|
2019-10-06 13:04:50 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-10-06 15:44:41 +00:00
|
|
|
public void RefreshColor() {
|
2019-10-06 17:04:47 +00:00
|
|
|
Vector4 hsva = new Vector4(0, 0, particle.disappear.health - 1, 0);
|
2019-10-06 15:44:41 +00:00
|
|
|
Color.RGBToHSV(color, out hsva.x, out _, out _);
|
|
|
|
material.SetVector("_HSVAAdjust", hsva);
|
2019-10-06 13:04:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
protected void Start() {
|
|
|
|
particle.mainRenderer.material = material;
|
|
|
|
particle.auraRenderer.material = material;
|
|
|
|
particle.detailsRenderer.material = material;
|
|
|
|
}
|
2019-10-06 15:44:41 +00:00
|
|
|
|
|
|
|
protected void Update() {
|
|
|
|
RefreshColor();
|
|
|
|
}
|
2019-10-06 13:04:50 +00:00
|
|
|
}
|