부트캠프 챕터3 - Unity 심화 4일차

xogud·2024년 5월 13일
0

Unity

목록 보기
3/11

24/05/13

카메라가 플레이어를 따라 움직이는것 처럼 보이게 만들어라.

메인카메라가 캐릭터를 따라 이동하면 되니까 카메라 오브젝트를 수정하다가 자꾸 실패해서 찾아보게 되었다.

찾아보니 카메라 이동 스크립트를 짜서 플레이어 컴포넌트로 넣어주면 해결된다고 한다.
아래는 카메라가 플레이어를 따라 추적하게 만드는 스크립트이다.

public class CameraFollow : MonoBehaviour
{
    [SerializeField]private GameObject Player;
    private Transform mainCamera;

    private void Start()
    {
        mainCamera = Camera.main.transform;
    }

    private void LateUpdate()
    {
        if (Player != null && mainCamera != null)
        {
            Vector3 newPosition = new Vector3(Player.transform.position.x, Player.transform.position.y, mainCamera.position.z);
            mainCamera.position = newPosition;
        }
    }
}
  • CameraFollow 클래스는 플레이어를 추적하는 카메라를 구현합니다.
  • Player 변수는 Inspector에서 설정할 수 있는 GameObject입니다. 이 변수는 플레이어를 나타내는 게임 오브젝트를 참조합니다.
  • mainCamera 변수는 메인 카메라의 Transform을 저장합니다.
  • Start() 메서드에서 mainCamera를 메인 카메라로 설정합니다. 이는 게임 시작 시 한 번만 호출됩니다.
  • LateUpdate() 메서드는 프레임이 렌더링된 후에 호출되며, 카메라 위치를 업데이트합니다.
  • mainCamera.position을 플레이어의 위치로 설정하여 카메라를 플레이어를 따라가도록 합니다.
  • Vector2 대신 Vector3을 사용하여 카메라의 z-축 위치를 유지합니다.

당연히 카메라 오브젝트를 수정해서 움직이게 만들어야 한다고 생각했는데...
단순하게 주체가 플레이어니까 플레이어의 움직임에 따라 변하는 벡터값을 메인카메라 transform변수에 position값으로 넣어주니
쉽게 해결되었다 하지만 이렇게라면 반대로 카메라 오브젝트에 움직임 스크립트를 컴포넌트로 추가해서 해결도 가능할 것 같은데 접근 방식의 차이인것 같다.

profile

0개의 댓글