본문 바로가기
▶ SCP전쟁 개발일지

#006 카메라 매니저 (캐릭터 이동 추적, 카메라 떨림 방지)

by 곰스타일 2024. 2. 23.
728x90
반응형
SMALL

유니티 2D 캐릭터가 이동함에 따라 카메라가 캐릭터 이동 추적하도록 구현하는 방법

 

1. Main Cemara 인스펙터 값 변경

 

1) Occlusion Culling 체크 활성화

2) MSAA 부분을 Use Graphics Settings로 체크

 

 

2. Main Cemara에 PlayCamreaFollow 스크립트 컴포넌트 (카메라 매니저 생성)

 

1) PlayCamreaFollow 스크립트는 아래와 같이 작성 (minX, maxX, minY, maxY 값은 맵에 따라 값 변경하여 사용)

2) PlayCamreaFollow 스크립트 컴포넌트 후 Player 오브젝트 할당

 

*** 카메라 떨림 방지

카메라 스크립트는 Update함수가 아닌 LateUpdate 함수안에 작성

(그래야 캐릭터 이동이 완료된 후에 카메라가 따라감)

 

using UnityEngine;

namespace Script
{
    public class PlayCameraFollow : MonoBehaviour
    {
        [SerializeField] private GameObject Player;

        [SerializeField] private float minX;
        [SerializeField] private float minY;
        [SerializeField] private float maxX;
        [SerializeField] private float maxY;
        // Start is called before the first frame update
        void Start()
        {
            minX = -50f;
            maxX = 50f;
            minY = -50f;
            maxY = 50f;
            transform.position = Player.transform.position;
        }

        // Update is called once per frame
        void Update()
        {
            if (Player != null)
            {
                var position = Player.transform.position;
                float posX = Mathf.Clamp(position.x, minX, maxX);
                float posY = Mathf.Clamp(position.y, minY, maxY);
                transform.position = new Vector3(posX, posY, -10);
            }
        }
    }
}

 

(참고: 위 코드는 Update 함수안에 작성되었음.Update를 LateUpdate로 수정만 해주면 됨)

728x90
반응형
LIST

댓글