Ch 6. 카메라 액션

Date:     Updated:

카테고리:

태그:

케이디님의 [유니티 강좌] 리듬 게임 유튜브 강의를 듣고 정리한 필기입니다. 😀
🌜 강의 들으러 가기 Click

🚀 카메라 액션

📜CameraController

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

public class CameraController : MonoBehaviour
{
    // Main Camera에 붙인다.

    [SerializeField] Transform thePlayer = null;
    [SerializeField] float followSpeed = 15;

    Vector3 playerDistance = new Vector3();

    float hitDistance = 0;
    [SerializeField] float zoomDistance = -1.25f; // 뒤로 -1.25 거리만큼 줌아웃

    void Start()
    {
        playerDistance = transform.position - thePlayer.position;
    }

    void Update()
    {
        Vector3 t_destPos = thePlayer.position + playerDistance + (transform.forward * hitDistance);
        transform.position = Vector3.Lerp(transform.position, t_destPos, followSpeed * Time.deltaTime);
    }

    public IEnumerator ZoomCam()
    {
        hitDistance = zoomDistance;
        yield return new WaitForSeconds(0.15f);
        hitDistance = 0;
    }
}

  • 1️⃣ 카메라가 플레이어를 따라다니게
    • 카메라는 플레이어와 t_destPos 만큼 유지
      • hitDistance는 평소엔 0 인데 Perfect, Good 등등 좋은 판정을 받을 때마다 발생하는 줌 아웃 효과를 위한 거리. 좋은 판정 받으면 zoomDistance가 대입된다.
    • Lerp 를 통해 부드럽게 변화. 1초에 followSpeed로.
  • 2️⃣ 좋은 판정을 받을시 줌아웃 효과
    • 0.15 초 동안 zoomDistance 만큼 더 거리 둠. 그리고 다시 0 으로.
    • 📜PlayerController 에서 좋은 판정 받을시 호출

image


📜PlayerController

CameraController theCam;
theCam = FindObjectOfType<CameraController>();

    void StartAction()
    {
        // ...

        StartCoroutine(MoveCo());
        StartCoroutine(SpinCo());
        StartCoroutine(RecoilCo());
        StartCoroutine(theCam.ZoomCam());
    }


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

Unity Lesson 4 카테고리 내 다른 글 보러가기

댓글 남기기