[Fix] All in one + add dice
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AllIn13DShader
|
||||
{
|
||||
public class AlphaTween : MonoBehaviour
|
||||
{
|
||||
private static int MATPROP_ID_GENERAL_ALPHA = Shader.PropertyToID("_GeneralAlpha");
|
||||
|
||||
public enum State
|
||||
{
|
||||
NONE = 0,
|
||||
FADE_IN = 1,
|
||||
FADE_OUT = 2,
|
||||
}
|
||||
|
||||
private MeshRenderer[] meshRenderers;
|
||||
|
||||
private bool IsTweening
|
||||
{
|
||||
get
|
||||
{
|
||||
bool res = state != State.NONE;
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
private AnimationCurve alphaCurve;
|
||||
private float duration;
|
||||
private float timer;
|
||||
|
||||
private State state;
|
||||
|
||||
private float alphaSrc;
|
||||
private float alphaDst;
|
||||
|
||||
public void Init(DemoSceneConfiguration demoSceneConfig, MeshRenderer[] meshRenderers)
|
||||
{
|
||||
alphaCurve = demoSceneConfig.alphaCurve;
|
||||
duration = demoSceneConfig.alphaDuration;
|
||||
timer = 0f;
|
||||
|
||||
this.meshRenderers = meshRenderers;
|
||||
|
||||
state = State.NONE;
|
||||
}
|
||||
|
||||
public void FadeIn()
|
||||
{
|
||||
timer = 0f;
|
||||
state = State.FADE_IN;
|
||||
|
||||
alphaSrc = 0f;
|
||||
alphaDst = 1f;
|
||||
}
|
||||
|
||||
public void FadeOut()
|
||||
{
|
||||
timer = 0f;
|
||||
state = State.FADE_OUT;
|
||||
|
||||
alphaSrc = 1f;
|
||||
alphaDst = 0f;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (IsTweening)
|
||||
{
|
||||
UpdateTweening();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateTweening()
|
||||
{
|
||||
timer += Time.deltaTime;
|
||||
float t = timer / duration;
|
||||
float curveT = alphaCurve.Evaluate(t);
|
||||
|
||||
float alpha = Mathf.Lerp(alphaSrc, alphaDst, curveT);
|
||||
|
||||
for(int i = 0; i < meshRenderers.Length; i++)
|
||||
{
|
||||
meshRenderers[i].sharedMaterial.SetFloat(MATPROP_ID_GENERAL_ALPHA, alpha);
|
||||
}
|
||||
|
||||
if(t >= 1f)
|
||||
{
|
||||
state = State.NONE;
|
||||
timer = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user