516 단어
3 분
유니티 2D 플레이어를 따라 카메라 움직이기기
2025-01-16

Unity에서 게임 플레이 중에 카메라가 플레이어 또는 특정 타겟을 부드럽게 따라다니도록 설정하는 방법을 공유합니다. 아래 코드는 CameraFollow라는 스크립트를 작성하여 카메라가 특정 타겟을 따라가는 기능을 구현한 예제입니다.


코드 설명#

using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    // 따라다닐 타겟 (플레이어)
    public Transform target;

    // 카메라가 타겟을 따라가는 속도
    [Range(0.1f, 10f)]
    public float smoothSpeed = 5f;

    public float verticalOffset = 2f;

    // 고정된 Z 위치
    private float fixedZPosition = -10f;

    private void LateUpdate()
    {
        if (target == null) return;

        // 현재 타겟 위치에 수직 오프셋을 더하고 고정된 Z 위치 사용
        Vector3 desiredPosition = new Vector3(
            target.position.x, 
            target.position.y + verticalOffset, 
            fixedZPosition
        );

        // 선형 보간(Lerp)을 사용해 부드럽게 카메라 이동
        Vector3 smoothedPosition = Vector3.Lerp(
            transform.position, 
            desiredPosition, 
            smoothSpeed * Time.deltaTime
        );

        // Z 위치를 강제로 고정
        smoothedPosition.z = fixedZPosition;

        // 카메라 위치 업데이트
        transform.position = smoothedPosition;
    }
}

사용 방법#

  1. 스크립트 추가
    위 코드를 Unity 프로젝트에서 새 C# 스크립트로 생성하고 저장하세요. 예를 들어, 파일 이름을 CameraFollow.cs로 저장합니다.

  2. 카메라에 스크립트 연결
    Hierarchy 창에서 카메라를 선택한 뒤, 해당 스크립트를 드래그하여 카메라에 추가합니다.

  3. 타겟 설정
    Inspector 창에서 Target 필드에 따라갈 오브젝트(예: 플레이어)를 드래그하여 설정하세요.

  4. 속성 조정
    Inspector 창에서 Smooth SpeedVertical Offset 값을 조정하여 원하는 움직임을 설정할 수 있습니다.


카메라가 플레이어의 움직임을 부드럽게 따라가며, 수직 위치와 속도를 조정할 수 있습니다. 2D 게임이나 간단한 3D 게임에 유용하게 활용할 수 있습니다.

TIP

더 복잡한 카메라 효과가 필요하다면 Cinemachine 같은 Unity 패키지를 활용하는 것도 좋은 방법입니다!