Ch 6. 카메라 액션
카테고리: Unity Lesson 4
태그: Unity Game Engine
케이디님의 [유니티 강좌] 리듬 게임 유튜브 강의를 듣고 정리한 필기입니다. 😀
🌜 강의 들으러 가기 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 에서 좋은 판정 받을시 호출
- 0.15 초 동안
📜PlayerController
CameraController theCam;
theCam = FindObjectOfType<CameraController>();
void StartAction()
{
// ...
StartCoroutine(MoveCo());
StartCoroutine(SpinCo());
StartCoroutine(RecoilCo());
StartCoroutine(theCam.ZoomCam());
}
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기