반응형
목표 |
플레이어가 움직이면 움직임에 따라 카메라가 움직이는 것을 스크립트로 처리 해 보자
실습 |
실습 전에 무료이미지 사이트에서 배경 화면을 다운받아 추가하자.( 카메라가 이동하면서 배경이 움직이는 것처럼 보이도록)
배경 추가후 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의 비율로 가까워 지도록 처리 하기 때문에 부드럽게 이동하게 된다.
만들어서 실행을 해 보게 되면 부드럽게 이동 하는 것을 알 수 있다.
반응형
'응용프로그래밍 > 유니티기초' 카테고리의 다른 글
[유니티기초] 2-02.싱글턴 패턴 (0) | 2022.05.31 |
---|---|
[유니티기초]2-01.에셋스토어에서 2D 이미지 다운받아 적용하기 (0) | 2022.05.31 |
[유니티기초]1-09. 객체 방향 전환 (0) | 2022.05.30 |
[유니티기초] 1-08.유니티 객체 삭제 (0) | 2022.05.30 |
[유니티기초]1-07. Random.Range 를 이용하여 랜덤한 위치에 객체 생성 (0) | 2022.05.30 |