[내일배움캠프 Unity 9기]

04/30 TIL - 유니티 입문(Stack Block)

kyvv 2025. 4. 30. 21:03

Lerp를 사용하면 a에서 b까지의 값 중, value에 해당하는 위치의 값을 반환한다.

Lerp(a,b,value) => 변하는 위치를 잡거나, 색상을 변경할 때

 

Stack Project

블럭 쌓기 미니게임 프로젝트를 진행하면서 어려웠던 부분은 없었고, 생소한 함수들이 나왔다.
Mathf.PingPong(T, Length) ==> 0부터 Length까지 T에 해당하는 값을 반환한다!
처음에는 T의 크기에 따라 위치가 변하는 폭이 커진다 생각해서 상수를 넣고 오브젝트를 움직여보고자 했지만,
제자리에 가만히 있었다.

 

<왼쪽과 오른쪽은 서로 다른 T 값을 대입함>

결과적으로는 T의 값에 따라 0부터 Length 사이의 특정 위치를 반환해준다고 보면 되겠고, 이를 선형적으로 움직이는 것처럼 표현하기 위해 시간이나 증가하는 변수를 대입해야 원하는 결과(선형적인 위치 결과)를 내줄 수 있겠다.

그럼 음수가 들어갔을 땐? --> gpt는 예상치 못한 결과가 나올 것이라 했는데, 막상 음수로 변환해서 출력해보니 0부터 정해진 범위 내로 잘 움직인다. 여기에 대해선 좀 더 세밀한 테스트 결과가 있어야할 듯 하지만.. 일단은 패스

 

 

아래는 시작 화면에서 블럭이 생성되고 카메라의 정중앙이 아닌 카메라의 위치에서 생성되고 시작이 된 후에 제자리를 찾아가는 현상이 생겨 찍은 캡쳐본이다.
그러니까 시작할 때 화면 중앙에 표시되어야할 두 블럭이 카메라 코앞에서 생성되길래 어디가 문제인가 봤더니
이 블럭을 쌓는 오브젝트의 위치가 문제였다.(생성 직후 reset transfrom을 해야 하는 이유.jpg)

리셋 해준 후 로테이션 값을 원래대로 맞추어주니 정상적으로 돌아왔다.

 

단순 pingpong만 사용하는 것과 lerp를 같이 사용하는 것에 살짝 의문이 들어 둘의 차이를 보도록 움직임을 각각 pingpong만 넣은 것과 lerp를 넣은 것을 비교해보았는데, 단순 블럭이어서 그런지 움직임에서는 차이를 못 느꼈지만 색상이 변화하는 테스트에서는 확실한 차이가 느껴졌다. pingpong만 들어간 경우에 색상이 휙휙 바뀌는 반면 lerp는 부드럽게 변화하는 것을 볼 수 있었다.

 

내일은 남은 강의를 마저 완강하고 프로젝트를 마무리할 수 있도록 해야지