使用Unity制作一款酷炫的2D游戏:LoopMania开发教程
抖动插件代码。
使用方法:在unity中新建一个与类同名的脚本,然后将下面的代码复制进去即可使用。
代码:
using UnityEngine;
/// <summary>
/// 相机抖动
/// </summary>
public class CameraShake : MonoBehaviour
{
public Transform camTransform;
private static float shakeDuration = 0f;
private static float shakeAmount = 0.7f;
private float vel;
private Vector3 vel2 = Vector3.zero;
private Vector3 originalPos;
private void Awake()
{
if (camTransform == null)
{
camTransform = base.transform;
}
originalPos = camTransform.localPosition;
}
public static void ShakeOnce(float _shakeDuration, float _shakeAmount)
{
shakeDuration = _shakeDuration;
shakeAmount = _shakeAmount;
}
private void Update()
{
if (shakeDuration > 0f)
{
Vector3 target = originalPos + UnityEngine.Random.insideUnitSphere * shakeAmount;
camTransform.localPosition = Vector3.SmoothDamp(camTransform.localPosition, target, ref vel2, 0.05f);
shakeDuration -= Time.deltaTime;
shakeAmount = Mathf.SmoothDamp(shakeAmount, 0f, ref vel, 0.7f);
}
else
{
camTransform.localPosition = originalPos;
}
}
}