77 lines
1.9 KiB
C#
77 lines
1.9 KiB
C#
using System;
|
|
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class CameraEffect : MonoBehaviour
|
|
{
|
|
private Transform target;
|
|
|
|
// 카메라 따라가는 속도 조절
|
|
[SerializeField] float smoothTime = 0.3f;
|
|
// 아래키로 화면 내릴 수 있는 수치
|
|
[SerializeField] private float lookDownAmount = 4f;
|
|
// 오프셋
|
|
[SerializeField] private Vector3 offset = new Vector3(0, 0, -10f);
|
|
|
|
private float defaultYOffset;
|
|
private Vector3 _velocity = Vector3.zero;
|
|
|
|
private void Start()
|
|
{
|
|
defaultYOffset = offset.y;
|
|
target = GameObject.FindGameObjectWithTag("Player").transform;
|
|
}
|
|
|
|
private void LateUpdate()
|
|
{
|
|
if (target == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
Vector3 targetPosition = target.position + offset;
|
|
transform.position = Vector3.SmoothDamp(transform.position, targetPosition, ref _velocity, smoothTime);
|
|
}
|
|
|
|
public void SetTarget(Transform target)
|
|
{
|
|
this.target = target;
|
|
}
|
|
|
|
|
|
// 아래보는 키 눌렀을때 왔다 갔다
|
|
public void SetLookDown(bool isLookingDown)
|
|
{
|
|
if (isLookingDown)
|
|
{
|
|
offset.y = defaultYOffset - lookDownAmount;
|
|
}
|
|
else
|
|
{
|
|
offset.y = defaultYOffset;
|
|
}
|
|
}
|
|
|
|
public void PlayPreViewSequence(Action onComplete)
|
|
{
|
|
StartCoroutine(PreviewSequence(onComplete));
|
|
}
|
|
|
|
public IEnumerator PreviewSequence(Action onComplete)
|
|
{
|
|
Transform player = GameObject.FindGameObjectWithTag("Player").transform;
|
|
target = player;
|
|
yield return new WaitForSeconds(2f);
|
|
|
|
GameObject cheese = GameObject.FindGameObjectWithTag("Cheese");
|
|
if (cheese != null)
|
|
{
|
|
target = cheese.transform;
|
|
yield return new WaitForSeconds(2f);
|
|
}
|
|
|
|
target = player;
|
|
yield return new WaitForSeconds(1f);
|
|
onComplete?.Invoke();
|
|
}
|
|
} |