現時点(2022年6月)ではUnityの機能としてはないのでちょっとしたコードを書く必要があるようです。
そこでこちらを参考に手を加えたものを作りました。
使い方
・下記スクリプトをカメラにAddComponent(D&D)
・カメラを揺らしたい箇所でこのように呼び出す CameraShake.Instance.Shake(0.25f, 0.2f);
・上下にだけ揺らしたい場合はコメントアウトに書いてあるように変更する new Vector3(pos.x, y, pos.z);
スクリプト
using System.Collections;
using UnityEngine;
public class CameraShake : MonoBehaviour
{
public static CameraShake Instance { get; private set; }
public bool Enable { get; set; }
private void Awake()
{
if (Instance != null)
{
Destroy(this);
return;
}
Instance = this;
}
public void Shake(float duration, float magnitude)
{
StartCoroutine(DoShake(duration, magnitude));
}
private IEnumerator DoShake(float duration, float magnitude)
{
Enable = true;
var pos = transform.localPosition;
var elapsed = 0f;
while (elapsed < duration)
{
if (!Enable) {
break;
}
var x = pos.x + Random.Range(-1f, 1f) * magnitude;
var y = pos.y + Random.Range(-1f, 1f) * magnitude;
transform.localPosition = new Vector3(x, y, pos.z);
// transform.localPosition = new Vector3(pos.x, y, pos.z);// 上下にだけ揺らしたい場合
elapsed += Time.deltaTime;
yield return null;
}
transform.localPosition = pos;
Enable = false;
}
}
参考
【Unity】カメラを揺らすスクリプト
https://baba-s.hatenablog.com/entry/2018/03/14/170400