KeiStory

Unity 카메라 흔들기 (Camera Shake) 하기

 

뭔가 충격을 받은 경우 화면이 흔들리게 하고 싶었는데 카메라를 흔들어 이를 구현하였습니다.

아래가 해당 스크립트입니다.

using UnityEngine;

public class CameraShake : MonoBehaviour
{
    public float shakeDuration = 0.5f; // 흔들림 지속 시간
    public float shakeMagnitude = 0.7f; // 흔들림 강도

    private Vector3 originalPos;
    private float shakeTimeRemaining;

    void OnEnable()
    {
        originalPos = transform.localPosition;
    }

    public void TriggerShake()
    {
        shakeTimeRemaining = shakeDuration;
    }

    void Update()
    {
        if (shakeTimeRemaining > 0)
        {
            transform.localPosition = originalPos + Random.insideUnitSphere * shakeMagnitude;
            shakeTimeRemaining -= Time.deltaTime;
        }
        else
        {
            transform.localPosition = originalPos;
        }
    }
}

위 스크립트를 Main Camera 에 넣고 버튼의 On Click 이벤트를 추가하여  CameraShake 의 TriggerShake() 메서드를 호출할 수 있도록 합니다.

적용한 결과

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band