Unity 经典教程 之 简单易学抖屏震屏效果的实现

2025-10-22 01:07:00

1、打开Unity,新建一个空工程,然后Unity界面如下图

Unity 经典教程 之 简单易学抖屏震屏效果的实现

2、在工程中新建一个脚本,脚本可以命名为“CameraShakeTest”,选中脚本,双击脚本或者右键“Open C# Project”,具体如下图

Unity 经典教程 之 简单易学抖屏震屏效果的实现

3、在打开的“CameraShakeTest”脚本上进行代码编辑,首先设置振幅、是否震动以及原始位置变量,然后获取振幅和原始位置,接着设定按下“S”键触发震动,并调用震动函数,具体代码及代码说明如下图

Unity 经典教程 之 简单易学抖屏震屏效果的实现

4、在打开的“CameraShakeTest”脚本上进行代码编辑,完成震动函数的代码,功能为位置随机变化,但是逐渐减小振幅,并且渐趋于原始位置震动,最后当振幅小于0.05f时,停止震动,震源回到原始位置,具体代码及代码说明如下图

Unity 经典教程 之 简单易学抖屏震屏效果的实现

5、脚本具体代码如下:

using UnityEngine;

public class CameraShakeTest : MonoBehaviour {

    float shake = 5;

    float setShake;

    bool shakeSwitch = false;

    Vector3 originalPos;

    void Start()

    {

        setShake = shake;

        originalPos = gameObject.transform.position;

    }

    void Update()

    {

        if (Input.GetKeyDown(KeyCode.S)) {

            shake = setShake;

            shakeSwitch = true;

        }

        if (shakeSwitch == true)

        {

            CameraShake();

        }

    }

    void CameraShake() {

        gameObject.transform.position = new Vector3(

            Random.Range(0f, shake * 2f) - shake + originalPos.x,

            Random.Range(0f, shake * 1f) - shake + originalPos.y,

            Random.Range(0f, shake * 2f) - shake + originalPos.z);

        shake = shake / 1.05f;

        if (shake < 0.05)

        {

            shake = 0;

            shakeSwitch = false;

            gameObject.transform.position = originalPos;

        }

    }

}

6、脚本编译正确后,回到Unity界面,在场景中新建一个“Cube”,以便于震动效果观察,然后把脚本“CameraShakeTest ”赋给“MainCamera”,具体如下图

Unity 经典教程 之 简单易学抖屏震屏效果的实现

7、运行场景,即可看到场景中“Cube”的震动效果,具体如下图

Unity 经典教程 之 简单易学抖屏震屏效果的实现

8、到此,《Unity 经典教程 之 简单易学抖屏震屏效果的实现》讲解结束,谢谢

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢