본문 바로가기

유니티/유데미【한글자막】 C# Unity 게임 개발자 2D

[유니티] Delivery Driver 제작 (3) 카메라 이동

 

카메라가 움직이지 않고 캐릭터만 움직일 경우, 캐릭터가 카메라 밖으로 나가면 게임 플레이에 지장이 생길 수 있습니다. 그래서 캐릭터가 움직일 때 카메라가 캐릭터를 따라 움직이도록 하는 기능을 만들었습니다.

카메라를 움직이게 하는 방법은 다양하며, 이 강의에서는 3줄의 코드로 구현하여 간단하게 테스트할 수 있는 방법을 사용했습니다.

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FollowCamera : MonoBehaviour
{
    [SerializeField] GameObject thingToFollow;

    void LateUpdate()  
    {
       transform.position = thingToFollow.transform.position + new Vector3 (0,0,-10); 
    }
}

 

구현방식

 

1. GameObject 형태의 thingToFollow 변수를 선언하고 [SerializeField]를 사용하여 Unity 인스펙터 창에서 해당 변수를 직접 수정할 수 있도록 허용합니다.

2. 캐릭터가 움직일 때 Update 메서드를 사용하므로, 카메라 이동도 Update를 사용하면 어떤 것이 먼저 실행될지 몰라 카메라 움직임이 이상할 수 있는 문제가 발생할 수 있습니다. 이러한 문제를 사전에 방지하기 위해 LateUpdate를 사용합니다.

3. LateUpdate에서는 이 스크립트를 적용한 카메라의 위치를 thingToFollow의 위치로 설정합니다. 이를 통해 카메라는 캐릭터를 따라가게 됩니다.

 

2023.09.19 - [유니티] - [유니티] MonoBehaviour 메서드 라이프 사이클(Awake, OnEnable, Start, Update, FixedUpdate, LateUpdate, OnDisable, OnDestroy )

 

[유니티] MonoBehaviour 메서드 라이프 사이클(Awake, OnEnable, Start, Update, FixedUpdate, LateUpdate, OnDisable, OnDe

Unity에서 게임 오브젝트와 스크립트의 라이프사이클은 게임 실행과 관련된 이벤트 및 단계를 설명하는 중요한 개념입니다. 이 라이프사이클은 MonoBehaviour 클래스를 상속한 스크립트가 게임 오브

a-full-moon.tistory.com



뒤에 new Vector3(0, 0, -10)을 더한 이유는 Unity에서 2D 게임은 사실상 3D로 표현되며, 카메라의 z 좌표가 게임 오브젝트와 같을 경우 아무것도 보이지 않습니다. 그래서 위치를 불러와서 그대로 이동시키면 카메라의 z 위치가 게임 오브젝트와 일치하게 되어 아무것도 보이지 않는 문제를 방지하기 위함입니다.

캐릭터 이동코드

2023.09.21 - [유니티] - [유니티] Delivery Driver 제작 (2) 캐릭터

 

[유니티] Delivery Driver 제작 (2) 캐릭터

Tag : Untagged Component : Transform, Sprite Renderer, Rigidbody 2D, Box Collider 2D, Driver(Script), Delivery(Script) Rigidbody 2D : Gravity Scale를 0 변경하여 조작하지 않아도 중력에 의해 떨어지지 않도록 하였다 Driver(Script) :

a-full-moon.tistory.com

카메라 z 좌표 0
카메라 z 좌표 -10

이제 카메라에 스크립트를 적용하고 인스펙터 창에서 수정 가능한 thingToFollow 변수를 사용하여, 캐릭터의 게임 오브젝트를 지정하고 실행하면 해당 캐릭터가 움직일 때 카메라도 함께 따라 움직이게 됩니다.

 

 

 

2023.09.21 - [유니티] - [유니티] Delivery Driver 제작 (2) 캐릭터

 

[유니티] Delivery Driver 제작 (2) 캐릭터

Tag : Untagged Component : Transform, Sprite Renderer, Rigidbody 2D, Box Collider 2D, Driver(Script), Delivery(Script) Rigidbody 2D : Gravity Scale를 0 변경하여 조작하지 않아도 중력에 의해 떨어지지 않도록 하였다 Driver(Script) :

a-full-moon.tistory.com

 

2023.09.20 - [유니티] - [유니티] Delivery Driver 제작 (0) 유데미 강좌 1

 

[유니티] Delivery Driver 제작 (0) 유데미 강좌 1

https://www.udemy.com/course/best-c-unity-2d/ 유데미의 【한글자막】 C# Unity 게임 개발자 2D를 보고 만드는걸 정리한 글 입니다. 2023.09.21 - [유니티] - [유니티] Delivery Driver 제작 (2) 캐릭터 [유니티] Delivery Driv

a-full-moon.tistory.com