在Unity中實現相機抖動特效
為了增加遊戲的真實感,一般我們會為遊戲新增一些螢幕抖動特效。下面簡單介紹幾種實現方式:
1.通過指令碼
相機抖動實現:
using UnityEngine;
using System.Collections;
public class CameraShake : MonoBehaviour
{
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;
}
}
呼叫實現:
using UnityEngine;
using System.Collections;
public class ExplodeStar : MonoBehaviour
{
public ParticleSystem explodePartical;
public CameraShake cameraShake;
void Update()
{
if (Input.GetKeyDown(KeyCode.E))
{
explodePartical.Play();
StartCoroutine(cameraShake.Shake(0.15f, 0.4f));
}
}
}
2.使用動畫
使用Animator分別建立閒置動畫和抖動動畫。使用動畫控制相機抖動。
3.使用外掛
1)極力推薦Free外掛 EZ Camera Shake
2)類似的DoTween,ITween,外掛
3)一個關於相機的外掛Cinemachine
參考文章:https://mp.weixin.qq.com/s/E7bjcg3C1MOUYQIOFZ6eqw