在创建游戏过程中,有时需要添加屏幕抖动的效果,其实是相机抖动。
创建脚本“CameraShake”,代码如下:
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 打中Boss,相机震动
/// </summary>
public class CameraShake : MonoBehaviour {
float shakeTime = 1.0f;//震动时间
private float currentTime = 0.0f;
private List<Vector3> gameobjpons = new List<Vector3>();
public Camera camera;//要求震动的相机
void Update()
{
if (Input.GetKeyDown("a"))
{
currentTime = shakeTime;
}
}
void LateUpdate() { UpdateShake(); }
void UpdateShake()
{
if (currentTime > 0.0f)
{
currentTime -= Time.deltaTime;
camera.rect = new Rect(0.04f * (-1.0f + 2.0f * Random.value) * Mathf.Pow(currentTime, 2), 0.04f * (-1.0f + 2.0f * Random.value) * Mathf.Pow(currentTime, 2), 1.0f, 1.0f);
}