유니티_unity

(유니티) 3D, 오브젝트를 따라다니는 카메라 스크립트

코딩ABC 2024. 5. 25. 17:04
반응형

유니티 3D에서 오브젝트를 약간 위에서 바라보는 따라다니는 카메라 스크립트입니다.

 

프로젝트 만들기

1. 3D용으로 프로젝트를 생성합니다.

 

2. Hierarchy 창에 3d 오브젝트 "Terrain"과 "Cyliner"를 추가합니다.

 

3. "Terrain"의 Position 값을 "-500, 0, -500"으로 설정합니다.

 

4. "Cylinder"오브젝크를 이동하는 C# 스크립트를 생성하고 "Cyliner"에 연결합니다 - "CylinderController.cs"

(실행해서 상하좌우 화살표 키로 실린더가 잘 이동하는 지 확인합니다.)

-- 여기까지는 https://coding-abc.kr/297  글을 참고합니다.

 

5. 카메라를 움직이는 스크립트를 생성하고, "Main Camera"에 연결합니다 - FollowCamera.cs

카메라가 오브젝트의 위치를 계속 추적하면서 특정 오프셋을 유지하도록 합니다. 이를 위해 다음과 같은 스크립트를 사용할 수 있습니다.

using UnityEngine;

public class FollowCamera : MonoBehaviour
{
    public Transform target;        // 카메라가 따라다닐 타겟 오브젝트
    public Vector3 offset;          // 타겟 오브젝트로부터의 위치 오프셋
    public float smoothSpeed = 0.125f; // 카메라 이동의 부드러움 정도

    void LateUpdate()
    {
        // 타겟 위치에 오프셋을 적용
        Vector3 desiredPosition = target.position + offset;
        // 부드러운 이동을 위해 Lerp 사용
        Vector3 smoothedPosition = Vector3.Lerp(transform.position, desiredPosition, smoothSpeed);
        // 카메라 위치를 업데이트
        transform.position = smoothedPosition;

        // 카메라가 타겟을 바라보도록 회전
        transform.LookAt(target);
    }
}

 

6. 위 스크립트를 사용하려면 다음과 같은 절차를 따르면 됩니다:

 

1. 유니티 에디터에서 FollowCamera.cs 파일을 생성하고 위 코드를 복사하여 붙여넣습니다.
2. 카메라 오브젝트에 이 스크립트를 추가합니다.

3. 스크립트 인스펙터에서 Target 필드에 카메라가 따라다닐 타겟 오브젝트를 드래그 앤 드롭합니다.

4. 'Offset' 필드에서 원하는 오프셋 값을 설정합니다. 예를 들어 (0, 5, -10)과 같은 값을 입력하면 카메라는 타겟 오브젝트의 약간 위쪽에서 뒤를 따라다니게 됩니다.

5. 'Smooth Speed' 필드에서 부드러움 정도를 설정합니다. 값이 낮을수록 부드럽게 움직입니다.

 

이 스크립트는 LateUpdate() 메서드에서 매 프레임마다 타겟 오브젝트의 위치를 추적하여 카메라의 위치를 업데이트합니다. Vector3.Lerp 메서드를 사용하여 부드러운 이동을 구현하며, transform.LookAt(target)을 통해 카메라가 항상 타겟을 바라보도록 합니다.

(유니티) 3D, 오브젝트를 따라다니는 카메라 스크립트

 

(유니티) 3D, 오브젝트를 따라다니는 카메라 스크립트

(실행 결과)

 

(유니티) 3D, 오브젝트를 따라다니는 카메라 스크립트

 

 

 

관련 글:

https://coding-abc.kr/297

 

(유니티) 키보드로 3D 오브젝트 좌우 앞으로 뒤로 이동하기

유니티에서 키보드를 이용해서 3D 오브젝트를 오른쪽 왼쪽 앞으로 뒤로 이동시키는 간단한 코드입니다. 프로젝트 만들기1. 3D를 선택해서 프로젝트를 생성합니다. 2. Hierarchy 창에 "Terrain"과 "Cylin

coding-abc.kr

 

반응형