728x90
IEnumerator UsingLerp(Transform obj, Vector3 destPos, Vector3 destRot, Vector3 destScale)
{
WaitForSeconds wtf = new WaitForSeconds(Time.deltaTime / 2);
float pastTime = 0f, destTime = 1f;
Vector3 originPos = obj.localPosition;
Vector3 originRot = obj.localEulerAngles;
Vector3 originScale = obj.localScale;
while (pastTime < destTime)
{
obj.localPosition = Vector3.Lerp(originPos, destPos, pastTime / destTime);
obj.localEulerAngles = Vector3.Lerp(originRot, destRot, pastTime / destTime);
obj.localScale = Vector3.Lerp(originScale, destScale, pastTime / destTime);
pastTime += Time.deltaTime / 2;
yield return wtf;
}
obj.localPosition = destPos;
obj.localEulerAngles = destRot;
obj.localScale = destScale;
}
gamemanager를 싱글톤 선언해 어디서든 접근 가능하게 만든 뒤,
gamemanager의 usingLerp 코루틴에 이동하고자 하는 오브젝트의 transform, 목표 장소, 목표 회전값, 목표 scale값을 정해두었다.
728x90
'공부 > Unity' 카테고리의 다른 글
[Unity] 버튼에 마우스 오버시 이미지 바꾸기 UI (0) | 2023.10.12 |
---|---|
[Unity] 버튼 스페이스바, 엔터 입력 방지하는 법 (0) | 2023.09.22 |
[Unity] 2D 주사위 굴리기 (ui-image) (0) | 2023.09.20 |
[Unity] GluelT 스프라이트 시트 만드는 프로그램 (0) | 2023.09.20 |
[Unity] could not create asset from file could not be read / unity rendertexture.create failed requested size is too large sprite renderer 오류 (0) | 2023.09.19 |