在Unity中实现相机抖动特效

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Root915/article/details/81775675

为了增加游戏的真实感,一般我们会为游戏添加一些屏幕抖动特效。下面简单介绍几种实现方式:

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

猜你喜欢

转载自blog.csdn.net/Root915/article/details/81775675