41 lines
1.0 KiB
C#
41 lines
1.0 KiB
C#
using UnityEngine;
|
|
|
|
public class vDisplayValueFade : MonoBehaviour
|
|
{
|
|
public CanvasGroup group;
|
|
public AnimationCurve groupAlphaCurve;
|
|
public float upSpeed;
|
|
|
|
public float timeToDestroy = 4f;
|
|
float currentTime;
|
|
Transform rotateTransform;
|
|
void Awake()
|
|
{
|
|
group.alpha = 0;
|
|
}
|
|
public void Update()
|
|
{
|
|
if (rotateTransform == null)
|
|
{
|
|
if (Camera.current)
|
|
{
|
|
rotateTransform = Camera.current.transform;
|
|
transform.forward = rotateTransform.position - transform.position;
|
|
group.alpha = 1;
|
|
}
|
|
else group.alpha = 0;
|
|
return;
|
|
}
|
|
|
|
transform.Translate(Vector3.up * upSpeed * Time.deltaTime);
|
|
|
|
transform.forward = rotateTransform.position - transform.position;
|
|
currentTime += Time.deltaTime;
|
|
var eval = currentTime / timeToDestroy;
|
|
|
|
if (group) group.alpha = groupAlphaCurve.Evaluate(1f - eval);
|
|
|
|
if (currentTime >= timeToDestroy) Destroy(gameObject);
|
|
}
|
|
}
|