Unity实现角色受到攻击后屏幕抖动的效果

news2025/1/7 18:12:30

文章目录

  • 实现效果
  • 摄像机
    • 抖动脚本
  • 玩家受伤
  • 其他文章

实现效果

首先看一下实现效果。
在这里插入图片描述

摄像机

我们要使用屏幕抖动,使用的是CinemachineVirtualCamera这个组件,这个组件需要在包管理器中进行导入。
导入这个组件之后,创建一个Chinemachine-2D Camera,接下来我们修改ChinemachineVirtualCamera的Noise,将其设置为Basic Multi Channel Perlin,然后设置Noise Profile为6D Wobble,6D Wobble表示在摄像机位置和方向上的随机扰动。这种扰动会使摄像机在六个自由度上(三个位置坐标和三个旋转角度)产生随机的摇摆效果。也就是说,通过调整6D wobble的参数,我们可以在实现抖动效果的同时,还可以使摄像机在位置和方向上产生更自然的随机运动。这样可以增强场景的真实感和动态感。

接下来,我们通过调整"6D wobble"的幅度和频率来控制摄像机的抖动效果。较大的幅度和频率值将会产生更明显的随机抖动。具体可以根据你的游戏需求来调整这些参数,以达到目标效果。

然后将Amplitude Gain和Frequency Gain属性设置为0。Amplitude Gain参数表示摄像机震动的幅度增益。该参数控制着摄像机震动的强度。较大的Amplitude Gain值会产生更强烈的震动效果,而较小的值则会减弱震动效果。

g

抖动脚本

创建一个脚本,命名为FollowCamera,然后修改内容为以下代码,挂载到CM vcam1物体上。
在脚本中,我们通过修改震动强度和频率两个属性来实现振动,同时还设置了一个持续时间,通过在调用该函数传递不同参数,来实现不同的效果。当然我也写了默认值,方便了直接调用。

using UnityEngine;
using Cinemachine;

public class FollowCamera : MonoBehaviour
{
    private CinemachineVirtualCamera virtualCamera;
    private CinemachineBasicMultiChannelPerlin noiseProfile;

    private void Start()
    {
        virtualCamera = GetComponent<CinemachineVirtualCamera>();
        noiseProfile = virtualCamera.GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
    }
    /// <summary>
    /// 摄像机振动
    /// </summary>
    /// <param name="duration">持续时间</param>
    /// <param name="amplitude">幅度</param>
    /// <param name="frequency">频率</param>
    public void ShakeCamera(float duration=0.25f, float amplitude=2, float frequency = 1)
    {
        if (noiseProfile != null)
        {
            noiseProfile.m_AmplitudeGain = amplitude;
            noiseProfile.m_FrequencyGain = frequency;
            Invoke(nameof(StopShaking), duration);
        }
    }

    private void StopShaking()
    {
        if (noiseProfile != null)
        {
            noiseProfile.m_AmplitudeGain = 0;
            noiseProfile.m_FrequencyGain = 0;
        }
    }
}

玩家受伤

修改你的玩家受伤部分的函数,使其调用follow Camera的ShakeCamera()方法。

public class Player : Person
{
    [Header("摄像机")]
    public FollowCamera followCamera;
    public override void Start()
    {
    	if(followCamera == null)
        {
            followCamera=GameObject.Find("CM vcam1").GetComponent<FollowCamera>();
        }
    }
	public override void BeHit(float damage, Vector3 attacker)
	{
	    base.BeHit(damage, attacker);
	    followCamera.ShakeCamera();
	}
}

其他文章

Unity实现2D游戏跟随摄像机(平滑移动)
Unity2D实现左右移动的敌人角色
Unity创建一个可移动的2D角色

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1030882.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习记忆——宫殿篇——记忆宫殿——记忆桩——单间+客厅+厨房+厕所+书房+院子

文章目录 单间客厅厨房厕所书房院子 单间 水壶 水龙头 香皂 果汁机 电视 门空间 花 红酒 葡萄 不锈钢 白毛沙发 彩色垫子 吉他 皮椅 挂画 风扇 糖抱枕 盒子 花土 水晶腿 衣柜 笔 三环相框 水壶 壁挂 台灯 被 网球拍 足球 抽屉 闹钟 蝴蝶 心 斑马 三轮车 音响 椅子 碗 玩偶 烟灰…

Android 12 源码分析 —— 应用层 六(StatusBar的UI创建和初始化)

Android 12 源码分析 —— 应用层 六&#xff08;StatusBar的UI创建和初始化) 在前面的文章中,我们分别介绍了Layout整体布局,以及StatusBar类的初始化.前者介绍了整体上面的布局,后者介绍了三大窗口的创建的入口处,以及需要做的准备工作.现在我们分别来细化三大窗口的UI创建和…

苹果手机怎么录屏?1分钟轻松搞定

虽然一直使用苹果手机&#xff0c;但是对它的录屏功能还不是很会使用。苹果手机怎么录屏&#xff1f;录屏可以录制声音吗&#xff1f;麻烦大家教教我&#xff01; 苹果手机为用户提供了十分便捷的内置录屏功能&#xff0c;可以让您随时随地录制手机上的内容。但是很多小伙伴在第…

六角形锌饼的尺寸及其允许偏差

声明 本文是学习GB-T 3610-2010 电池锌饼. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了电池锌饼的产品分类、要求、试验方法、检验规则及标志、包装、运输、贮存、质量证明 书和合同(或订货单)等内容。 本标准适用于制造锌-…

如何把.mhd和.raw文件转换为DICOM文件

之前拿到体渲染的人头数据Manix&#xff0c;格式为mhd和raw格式的需要转换为DICOM ResearchGate上的一个帖子帮了大忙&#xff08;链接如下&#xff09;&#xff0c;有人说用ImageJ&#xff0c;有的说用XMedCon。我试了半天也没用ImageJ弄成功&#xff0c;但是XMedCon一下就好…

【有关mysql的实操记录】

一. 导入导出数据 1. 导出mysql的数据库作为备份文件 mysqldump -u 用户名 -p 数据库名 >导出文件路径.sql 回车之后&#xff0c;提示输入密码. 2. 导入mysql之前备份的数据库文件 mysql -u 用户名 -p 数据库名 <导入文件路径.sql 回车之后&#xff0c;提示输入密码 …

总结分析 | 基于phpmyadmin的渗透测试

一、什么是phpmyadmin&#xff1f; phpMyAdmin 是一个以PHP为基础&#xff0c;以Web-Base方式架构在网站主机上的MySQL的数据库管理工具&#xff0c;让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径&#xff0c;尤其要处理大…

CG-78静力水准仪采用压力传感器测量液体的压差

CG-78静力水准仪采用压力传感器测量液体的压差产品概述 静力水准仪是测量两点间或多点间相对高程变化的仪器。由储液器、高精度芯体和特别定制电路模块、保护罩等部件组成。沉降系统由多个同型号传感器组成&#xff0c;储液罐之间由通气管和通液管相连通&#xff0c;基准点置于…

循环神经网络——下篇【深度学习】【PyTorch】【d2l】

文章目录 6、循环神经网络6.7、深度循环神经网络6.7.1、理论部分6.7.2、代码实现 6.8、双向循环神经网络6.8.1、理论部分6.8.2、代码实现 6.9、机器翻译6.9.1、理论部分 6.10、编码器解码器架构6.10.1、理论部分 6、循环神经网络 6.7、深度循环神经网络 6.7.1、理论部分 设计…

瑞慈医疗:H1体检业务同比上涨101.2%,因何领跑医疗健康行业?

悄然间&#xff0c;医疗健康行业碰上历史性变革。水面之上&#xff0c;医院体检医院体检人潮涌动&#xff0c;愈来愈多的医院迈上扩建体检中心的步伐&#xff0c;赛道激增 20%为所有科室之首。水面之下&#xff0c;依靠信息技术使体检数字化、智能化的转型浪潮&#xff0c;也在…

TypeError: res.data.map is not a function微信小程序报错

从数据库查&#xff1a; 调用的是&#xff1a; 访问的springboot后端是这个&#xff1a; 打印出来如下&#xff1a; 看到是json格式的数据 [Users [id3, name刘雨昕, phone18094637788, admintrue, actionsJsonadmin, createAtSat Sep 16 10:11:20 CST 2023, tokentest], User…

小节9:Python之numpy

numpy全称为Numerical Python&#xff0c;是很多数据或科学相关Python包的基础。 1、numpy数组&#xff08;ND array N维数组&#xff09; numpy数组是更适合数据分析的列表。 numpy的数组和Python的内置列表有相似之处&#xff0c;也有不同之处。 相似之处&#xff1a;我们…

面向对象进阶

文章目录 面向对象进阶一.static1.静态变量2.静态方法3.static的注意事项 二.继承1.概述2.特点3.子类可以继承父类中的内容4.继承中成员变量的访问特点5.继承中成员方法的访问特点6.继承中构造方法的访问特点7.this和super使用总结 三.多态1.认识多态2.多态中调用成员的特点3.多…

简单的手机电脑无线传输方案@固定android生成ftp的IP地址(android@windows)

文章目录 abstractwindows浏览android文件环境准备客户端软件无线网络链接步骤其他方法 手机浏览电脑文件公网局域网everythingpython http.server 高级:固定android设备IP准备检查模块是否生效 windows 访问ftp服务器快捷方式命令行方式双击启动方式普通快捷方式映射新的网络位…

27.基于ADS的不等分威尔金森功分器设计

27.基于ADS的不等分威尔金森功分器设计 等分的威尔金森功分器可以使用ADS非常快速的设计出来&#xff0c;但是不等分的功分器却没有便捷的设计方法&#xff0c;在此给出快速的设计方法与案例&#xff0c;方便大家实际设计。 本次的工程链接&#xff1a; https://download.csdn…

Apache Beam 2.50.0发布,该版本包括改进功能和新功能

导读我们很高兴向您介绍 Beam 的新版本 2.50.0。该版本包括改进功能和新功能。请查看此版本的下载页面。 亮点 Spark 3.2.2 被用作 Spark 运行程序的默认版本&#xff08;#23804&#xff09;。Go SDK 新增默认本地运行程序&#xff0c;名为 Prism&#xff08;#24789&#xff0…

【SpringCloud微服务全家桶学习笔记-服务调用Ribbon/openFeign】

SpringCloud微服务全家桶学习笔记 内容&#xff1a;SpringCloud SpringCloud alibaba 技术栈&#xff1a;Java8mavengit&#xff0c;githubNginxRabbitMQSpringBoot2.0 仓库&#xff1a;链接 服务调用Ribbon 是什么&#xff1f; Ribbon是Netflix发布的开源项目&#xff…

WEB使用VUE3实现地图导航跳转

我们在用手机查看网页时可以通过传入经纬度去设置目的地然后跳转到对应的地图导航软件&#xff0c;如果没有下载软件则会跳转到下载界面 注意&#xff1a; 高德地图是一定会跳转到一个新网页然后去询问用户是否需要打开软件百度和腾讯地图是直接调用软件的这个方法有缺陷&…

Excel打开后关闭就马上跳出 Visual c++ Runtime Error R6025

环境&#xff1a; Win10 专业版 Excel 2016 绿盾加密环境 问题描述&#xff1a; Excel打开后关闭就马上跳出 visual c runtime error R6025 runtime error! program:c:\program files\microsoft office\office14\excle.exe r6025 -pure virtual function call 解决方案…

电脑如何录屏?推荐3个方法

随着电脑技术的不断发展&#xff0c;屏幕录制成为了一项重要的技能&#xff0c;无论是为了制作教育教程、分享游戏成就&#xff0c;还是记录计算机上的重要操作。电脑录屏能够让您捕捉屏幕上的所有活动&#xff0c;这对于培训、演示和内容创作非常有用。在本文中&#xff0c;我…