Cyber/Assets/Scripts/Util/Hologram.cs

49 lines
1.3 KiB
C#
Raw Normal View History

using UnityEngine;
using Cyber.Util;
2017-05-12 01:03:27 +02:00
namespace Cyber.Util {
/// <summary>
/// Helper component for hologram meshes.
/// </summary>
2017-05-12 01:03:27 +02:00
public class Hologram : MonoBehaviour {
/// <summary>
/// Whether the hologram is visible or not.
/// </summary>
public bool Visible = true;
/// <summary>
/// The texture that will handle the text which is displayed on this
/// hologram.
/// </summary>
public TextTextureApplier Text;
private float CurrentScale;
private void Start() {
2017-05-12 01:03:27 +02:00
CurrentScale = GetTargetScale();
UpdateScale();
}
private void Update() {
2017-05-12 01:03:27 +02:00
if (GetTargetScale() != CurrentScale) {
UpdateScale();
}
}
private void UpdateScale() {
2017-05-12 01:03:27 +02:00
float Scale = GetTargetScale();
CurrentScale = Mathf.Lerp(CurrentScale, Scale, 8f * Time.deltaTime);
if (Mathf.Abs(Scale - CurrentScale) < 0.05) {
CurrentScale = Scale;
}
transform.localScale =
new Vector3(CurrentScale, CurrentScale, CurrentScale);
}
2017-05-12 01:03:27 +02:00
private float GetTargetScale() {
return Visible ? 1 : 0;
}
}
}