一个Unity相机震动的效果
// 按E相机抖动
public class ExplodeStar : MonoBehaviour
{
void Update()
{
if (Input.GetKeyDown(KeyCode.E))
{
StartCoroutine(Shake(0.15f, 0.4f));
}
}
public IEnumerator Shake(float duration, float magnitude)
{
Vector3 orignalPosition = transform.position;
float elapsed = 0f;
while (elapsed < duration)
{
float x = Random.Range(-1f, 1f) * magnitude;
float y = Random.Range(-1f, 1f) * magnitude;
transform.position = new Vector3(x, y, -10f);
elapsed += Time.deltaTime;
yield return 0;
}
transform.position = orignalPosition;
}
}
Shake传入的值为 震动持续时间 和 震动幅度
PS:(其实就是相机在一定位置内随机移动)
PS:这只是个效果,推荐使用Cinemachine