2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

응용프로그래밍/유니티기초

[유니티기초]1-10. 카메라 이동

파아란기쁨1 2022. 5. 30. 22:33
반응형
목표

플레이어가 움직이면 움직임에 따라 카메라가 움직이는 것을 스크립트로 처리 해 보자

 

 

 

실습

실습 전에 무료이미지 사이트에서 배경 화면을 다운받아 추가하자.( 카메라가 이동하면서 배경이 움직이는 것처럼 보이도록)

배경 추가후 order in layer 를 -1 로 처리해서 가장 뒤쪽으로 밀자.

 

카메라에 다음의 스크립트를 추가하자

.

1. position 을 변경하여 이동하는 경우

public class TraceScript : MonoBehaviour
{
    public GameObject player; //추적할 게임 오브젝트
    private Transform trace; //추적할 게임 오브젝트의 transform
    // Start is called before the first frame update
    void Start()
    {
        trace = player.transform;
    }

    // Update is called once per frame
    void Update()
    {
        transform.position = new Vector3(trace.position.x,trace.position.y,-10);   
    }
}

플레이어의 transform 을 가져와서 메인카메라의 transform 의 x,y 값을 정해 주면 된다. 이때 z 축은 카메라가 멀리 떨어져서 봐야 하므로 해당 값을 설정해 준다.

 

2. Vector3.Lerp 함수를 이용해서 부드럽게 이동 시키는 방법

    void Update()
    {
        transform.position = Vector3.Lerp(transform.position,new Vector3(trace.position.x,trace.position.y,-10),0.5f*Time.deltaTime);
    }

여기서 Vector3.Lerp(a,b,c) 함수의 의미는

a+(b-a)*c 의 의미이다.

즉 a와 b의 차이가 1이고 c가 0.2 이면 값은 a + 0.2 가 된다.

한번 더 반복 하면 a와 b의 차이가 0.8 이 되고 그 결과 값은 a + 0.2 + 0.16 이 된다.

이처럼 a 에서 b 로 이동하는 것을 c의 비율로 가까워 지도록 처리 하기 때문에 부드럽게 이동하게 된다.

 

 

만들어서 실행을 해 보게 되면 부드럽게 이동 하는 것을 알 수 있다.

반응형