源码:
夸克:https://pan.quark.cn/s/268dc2e372bc
UC:https://drive.uc.cn/s/3fde23464ae04?public=1
百度:https://pan.baidu.com/s/186waYDWxVXxpBKVx-Vv0OA?pwd=vu5c
迅雷:https://pan.xunlei.com/s/VODplqW1IxiRpj9GVm6xjxs3A1?pwd=85ad#
蓝奏云:https://wwul.lanzoue.com/ivquJ1d2ztof
用应对的手机网盘APP收藏资源后再下载,可以更好的支持up主哟,创作不易,感谢支持~
网盘空间快满了,限时分享,建议尽快保存文件,防止资源被删除~
创建好Unity项目后,安装Cinemachine插件。

安装Cinemachine插件
创建虚拟相机Virtual Camera。(确保名字也是这个,如果不是就重命名为Virtual Camera,否则后面代码中会找不到这个对象。除非在代码中也同步修改名字,或通过单例模式查找到这个对象上的组件)

创建虚拟相机Virtual Camera
创建Capsule暂时代替角色,重命名为Player。

创建Capsule暂时代替角色,重命名为Player
创建C#脚本,命名为VirtualCamera。

创建C#脚本,命名为VirtualCamera
同样创建C#脚本,命名为PlayerController。

创建C#脚本,命名为PlayerController
双击打开VirtualCamera脚本,输入以下代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Cinemachine;
public class VirtualCamera : MonoBehaviour
{
private CinemachineVirtualCamera virtualCamera;
private CinemachineBasicMultiChannelPerlin noiseProfile;
void Start()
{
virtualCamera = GetComponent();
noiseProfile = virtualCamera.GetCinemachineComponent();
}
///
/// 震屏
///
/// 时长
/// 幅度
/// 频率
public void CameraShake(float duration = 0.25f, float amplitude = 1f, float frequency = 1f)
{
if (noiseProfile != null)
{
noiseProfile.m_AmplitudeGain = amplitude;
noiseProfile.m_FrequencyGain = frequency;
Invoke(nameof(StopShaking), duration);
}
}
///
/// 停止震屏
///
private void StopShaking()
{
if (noiseProfile != null)
{
noiseProfile.m_AmplitudeGain = 0f;
noiseProfile.m_FrequencyGain = 0f;
}
}
}