Programing/Unity(C#)

[Unity] 화면 흔들림 효과

hye3193 2024. 1. 3. 13:51
[SerializeField] float shakeDuration = 1f;
[SerializeField] float shakeMagnitude = 0.5f;

Vector3 initialPosition;

void Start()
{
    initialPosition = transform.position;
}

public void Play()
{
    StartCoroutine(Shake());
}

IEnumerator Shake()
{
    float elapsedTime = 0f;
    while (elapsedTime < shakeDuration)
    {
        transform.position = initialPosition + (Vector3)Random.insideUnitCircle * shakeMagnitude;
        elapsedTime += Time.deltaTime;
        yield return new WaitForEndOfFrame();
    }
    transform.position = initialPosition;
}

 

카메라의 포지션을 정해진 범위 안에서 이동시켜 화면이 흔들리는 것처럼 보이는 효과

수학을 이용하지 않는 간단한 버전