Oyun Kütüphanesi

Kamera Sarsıntısı (Camera Shake)

Kamera Kontrolleri Unity C# 2
KameraSarsıntısıCameraShake .cs
C#
using UnityEngine;
using System.Collections;

public class CameraShake : MonoBehaviour
{
    public static CameraShake Instance;
    private Vector3 originalPos;

    void Awake()
    {
        Instance = this;
        originalPos = transform.localPosition;
    }

    public void Shake(float duration, float magnitude)
    {
        StopAllCoroutines();
        StartCoroutine(DoShake(duration, magnitude));
    }

    IEnumerator DoShake(float dur, float mag)
    {
        float elapsed = 0f;
        while (elapsed < dur)
        {
            float x = Random.Range(-1f, 1f) * mag;
            float y = Random.Range(-1f, 1f) * mag;
            transform.localPosition = originalPos + new Vector3(x, y, 0);
            elapsed += Time.deltaTime;
            yield return null;
        }
        transform.localPosition = originalPos;
    }
}

Açıklama

Patlama, hasar veya çarpma anında kamerayı Coroutine ile rastgele sarsıntıya uğratan efekt.

Etiketler

Kamera Sarsıntı Shake Coroutine

Nasıl Kullanılır?

1. Bu scripti Main Camera'ya ekle.

2. Herhangi bir yerden çağırma:

CameraShake.Instance.Shake(0.3f, 0.2f)

3. İlk parametre süre (saniye), ikincisi şiddet.

4. Patlama, hasar alınca veya yere düşünce çağır.

Unity 2022+ ve Unity 6 ile uyumludur.

MonoBehaviour tabanlı scriptleri Assets klasörüne .cs olarak kaydedin.