[Fix] All in one + add dice
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace AllIn13DShader
|
||||
{
|
||||
[System.Serializable]
|
||||
public class PropertyTweenFader : PropertyTween
|
||||
{
|
||||
public enum State
|
||||
{
|
||||
WAITING_FOR_FADE_IN = 0,
|
||||
FADING_IN = 1,
|
||||
WAITING_FOR_FADE_OUT = 2,
|
||||
FADING_OUT = 3,
|
||||
}
|
||||
|
||||
private float timer;
|
||||
private State state;
|
||||
|
||||
[Header("Config")]
|
||||
public float waitingForFadeInTime;
|
||||
public float fadeInDuration;
|
||||
public float waitingForFadeOutTime;
|
||||
public float fadeOutDuration;
|
||||
|
||||
public override void Init(Material mat)
|
||||
{
|
||||
base.Init(mat);
|
||||
|
||||
state = State.WAITING_FOR_FADE_IN;
|
||||
timer = 0f;
|
||||
}
|
||||
|
||||
protected override void Tween(float deltaTime)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
case State.WAITING_FOR_FADE_IN:
|
||||
UpdateWaitingForFadeIn();
|
||||
break;
|
||||
case State.FADING_IN:
|
||||
UpdateFadingIn();
|
||||
break;
|
||||
case State.WAITING_FOR_FADE_OUT:
|
||||
UpdateWaitingForFadeOut();
|
||||
break;
|
||||
case State.FADING_OUT:
|
||||
UpdateFadingOut();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateWaitingForFadeIn()
|
||||
{
|
||||
timer += Time.deltaTime;
|
||||
|
||||
if (timer >= waitingForFadeInTime)
|
||||
{
|
||||
state = State.FADING_IN;
|
||||
timer = 0f;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateFadingIn()
|
||||
{
|
||||
timer += Time.deltaTime;
|
||||
|
||||
float t = timer / fadeInDuration;
|
||||
currentValue = t;
|
||||
|
||||
if (timer >= fadeInDuration)
|
||||
{
|
||||
state = State.WAITING_FOR_FADE_OUT;
|
||||
timer = 0f;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateWaitingForFadeOut()
|
||||
{
|
||||
timer += Time.deltaTime;
|
||||
|
||||
if (timer >= waitingForFadeOutTime)
|
||||
{
|
||||
state = State.FADING_OUT;
|
||||
timer = 0f;
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateFadingOut()
|
||||
{
|
||||
timer += Time.deltaTime;
|
||||
|
||||
float t = timer / fadeOutDuration;
|
||||
currentValue = 1 - t;
|
||||
|
||||
if (timer >= fadeOutDuration)
|
||||
{
|
||||
state = State.WAITING_FOR_FADE_IN;
|
||||
timer = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user