using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
[DisallowMultipleComponent]
|
[RequireComponent(typeof(Text))]
|
public class TypeWriterEffect:MonoBehaviour {
|
|
[SerializeField]
|
[Range(0,1)]
|
float m_Speed;
|
public float speed { get { return m_Speed; } }
|
|
[SerializeField]
|
[Range(0.05f,5.0f)]
|
float m_Interval;
|
public float interval { get { return m_Interval; } }
|
|
float m_Progresss = 0f;
|
public float progress {
|
get { return m_Progresss; }
|
set {
|
m_Progresss = Mathf.Clamp01(value);
|
if(material != null) {
|
material.SetFloat("_FillAmount",m_Progresss);
|
}
|
}
|
}
|
|
Text m_Text;
|
public Text text { get { return m_Text ?? (m_Text = this.GetComponent<Text>()); } }
|
|
Material material { get { return text.material; } }
|
|
float timer = 0f;
|
void OnEnable() {
|
timer = 0f;
|
progress = 0f;
|
}
|
|
public void StartTypeWriter(float _progress) {
|
progress = _progress;
|
timer = 0f;
|
}
|
|
void LateUpdate() {
|
if(progress >= 1f) {
|
return;
|
}
|
|
timer += Time.deltaTime;
|
if(timer > interval) {
|
timer = 0;
|
progress += speed;
|
}
|
}
|
|
|
|
}
|