🐧 들어가기 앞서

개인 과제를 시작했다!

Input System을 복습했고,

Animation을 제작했다.

생각보다 오랜만에 해서 어려웠다.

그리고 GameManger를 쓰는 걸 까먹었다..!

내일 Nickname을 설정할 때 생성해줘야겠다.


🐧 오늘 배운 것

  1. 캐릭터 움직이게 하기
  2. 카메라가 캐릭터 움직임 추적하기
  3. 캐릭터 애니메이션 제작

🐧 기억할 것

캐릭터 움직임 추적

  • MainCamera.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MainCamera : MonoBehaviour
{
    public Transform target;
    Vector3 velocity = Vector3.zero;

    [Range(0, 1)]
    public float smoothTime;

    public Vector3 positionOffset;

    private void Awake()
    {
        target = GameObject.FindGameObjectWithTag("Player").transform;
    }

    private void LateUpdate()
    {
        Vector3 targetPosition = target.position + positionOffset;
        transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime);
    }
}
  • public Transform target
    카메라가 따라갈 대상을 설정하는 public 변수다.
    이 변수에는 플레이어 또는 다른 게임 오브젝트의 Transform 컴포넌트가 할당된다.

  • Vector3 velocity = Vector3.zero
    카메라 이동을 부드럽게 하기 위한 보간에 사용되는 변수다.
    초기에는 Vector3.zero로 초기화된다.

  • [Range(0, 1)] public float smoothTime
    카메라 이동을 얼마나 부드럽게 할지를 설정하는 public 변수다. [Range(0, 1)] 속성을 사용하여 값을 0부터 1 사이로 제한한다.
    0에 가까울수록 부드럽게 움직이고, 1에 가까울수록 빠르게 움직인다.

  • public Vector3 positionOffset
    대상 오브젝트와의 상대적인 위치를 설정하는 public 변수다.
    이 변수를 사용하여 카메라와 대상 간의 거리 및 위치를 조절할 수 있다.

  • private void Awake()
    스크립트가 시작될 때 호출되는 Awake 메서드다.
    "target" 변수에 "Player" 태그를 가진 오브젝트의 Transform을 찾아 할당한다.

  • private void LateUpdate()
    매 프레임마다 호출되는 LateUpdate 메서드다.
    LateUpdate는 주로 카메라 제어와 관련된 로직을 처리하는 데 사용된다.
    이 메서드에서는 현재 카메라의 위치를 부드럽게 대상 오브젝트에 맞춘다.

  • Vector3 targetPosition = target.position + positionOffset
    대상 오브젝트의 위치에 "positionOffset"을 더하여 카메라가 따라갈 목표 위치를 계산한다.

  • transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref velocity, smoothTime)
    현재 카메라의 위치를 부드럽게 따라가도록 업데이트한다.
    SmoothDamp 함수를 사용하여 현재 위치에서 목표 위치로 부드럽게 이동한다.
    "velocity" 변수는 카메라 이동에 사용되며, 이동이 완료될 때 자동으로 업데이트된다.


🐧 수강후기

생각보다 머리가 안돌아간다.

오랜만에 해서 그런지 재밌으면서도 어렵다!

최대한 자료를 많이 찾아보고, 열심히 제작해야지.

속도를 높이자!

0개의 댓글