Back Ground
Progress Bar (현재는 FakeLoding)
Touch The Screen (Alpha Value, Fade In Out)
Loding Progress Bar 는 현재 중간 발표의 스코프에 맞추기 위해 일단, Fake Loding으로 진행하였다.
public class FakeLoading : MonoBehaviour
{
[SerializeField]
private GameObject _touchScreen;
private Image _progressBar;
private void Awake()
{
_progressBar = transform.GetChild(0).GetComponent<Image>();
}
private void Start()
{
StartCoroutine(FakeLoadingBar());
}
private IEnumerator FakeLoadingBar()
{
float timer = 0f;
while (timer < 1.0f)
{
yield return null;
timer += Time.deltaTime;
if (_progressBar.fillAmount < 0.9f)
{
_progressBar.fillAmount = Mathf.Lerp(_progressBar.fillAmount, 0.9f, timer);
if (_progressBar.fillAmount >= 0.9f)
{
timer = 0f;
}
}
else
{
_progressBar.fillAmount = Mathf.Lerp(_progressBar.fillAmount, 1f, timer);
}
}
_touchScreen.SetActive(true);
gameObject.SetActive(false);
}
private void OnDisable()
{
StopAllCoroutines();
}
}
Touch The Screen 이 알파값을 0 - 1 이 왔다갔다 하며 깜빡이는 효과를 주었다.
public class FadeInOut : MonoBehaviour
{
[SerializeField]
private TextMeshProUGUI _touchScreenText;
private readonly float _fadeTime = 2f;
private void Awake()
{
_touchScreenText = transform.GetComponent<TextMeshProUGUI>();
}
private void OnEnable()
{
StartCoroutine(FadeOut());
}
private IEnumerator FadeOut()
{
Color tempColor = _touchScreenText.color;
tempColor.a = 0f;
while (tempColor.a < 1f)
{
tempColor.a += Time.deltaTime / _fadeTime;
_touchScreenText.color = tempColor;
if (tempColor.a >= 1f)
{
tempColor.a = 1f;
}
yield return null;
}
StartCoroutine(FadeIn());
}
private IEnumerator FadeIn()
{
Color tempColor = _touchScreenText.color;
while (tempColor.a > 0f)
{
tempColor.a -= Time.deltaTime / _fadeTime;
_touchScreenText.color = tempColor;
if (tempColor.a <= 0f)
{
tempColor.a = 0f;
}
yield return null;
}
StartCoroutine(FadeOut());
}
private void OnDisable()
{
StopAllCoroutines();
}
}
FadeOut 과 FadeIn 이라는 IEnumerator을 사용하여, 시작하면 FadeOut, 알파값을 0으로 만들고 1로 채워진 다음 다 채워지면 Fade In으로 가서 다시 알파값을 줄이고 0이 된다면 다시 FadeOut을 불러주는 방식으로 깜빡임을 구현하였다.
씬이 넘어가서 해당 오브젝트가 꺼지면 코루틴을 다 꺼두게 하였다.
Level Generator
Spawn System
Hit Interface 정립
Action Node 모듈화
Sound Detect