반응형
오늘은 유니티의 Lerp 함수에 대하여 알아보겠다
반응형
Lerp 함수란? : A와 B사이를 T로 선형 보간하는 함수들
어려워 보이는데 간단하게 이해가 가능하다
(a, b, t) 중 t가 0일 때 : a를 반환
(a, b, t) 중 t가 1일 때 : b를 반환
(a, b, t) 중 t가 0.5일 때 : a와 b의 중간점에 있는 값을 반환
수를 넣어보면 이렇다
(1, 10, t) 중 t가 0일 때 : 1을 반환
(1, 10, t) 중 t가 1일 때 : 10을 반환
(1, 10, t) 중 t가 0.5일 때 : 5.5를 반환
쉽게 말해서 A, B사이의 t 지점의 값을 반환한다고 이해하면 편하다
Lerp함수는 여러 구조체에 정의되어 있다
Mathf.Lerp
Vector2.Lerp
Vector3.Lerp
Quaternion.Lerp
Color.Lerp
등등
그러면 이것을 이용하여 페이드 인 페이드 아웃을 구현해 보도록 하겠다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Fade : MonoBehaviour
{
[SerializeField] private float fadeSpeed;
private Image targetImage;
private bool isFade;
private void Awake()
{
targetImage = GetComponent<Image>();
}
private void Update()
{
if(Input.GetKeyDown(KeyCode.Space))
{
if (isFade)
{
StartCoroutine(FadeCo(targetImage.color, new Color(0, 0, 0, 0)));
}
else
{
StartCoroutine(FadeCo(targetImage.color, new Color(0, 0, 0, 1)));
}
}
}
private IEnumerator FadeCo(Color origin, Color target)
{
isFade = !isFade;
float per = 0;
while(per < 1)
{
per += Time.deltaTime * fadeSpeed;
//보간
targetImage.color = Color.Lerp(origin, target, per);
yield return null;
}
}
}
이렇게 코드를 작성하면 아주 쉽게 페이드 인 페이드 아웃이 구현이 가능하다
반응형
'유니티 > 기타' 카테고리의 다른 글
[Unity] Mathf.InverseLerp (0) | 2024.02.11 |
---|---|
[Unity] Visual Studio에서 유니티용 DLL만드는법 (0) | 2024.02.08 |
[Unity] 구글 시트 연동하는법 (1) | 2023.10.29 |