当前位置: 首页 > news >正文

建设网站和app/举出最新的网络营销的案例

建设网站和app,举出最新的网络营销的案例,郴州市网站建设,成都旅游攻略带孩子三日游文章目录 每篇一句前言安装虚拟相机虚拟相机震动测试代码控制震动清除震动控制震动的幅度和时间 两个不同的强弱震动同时发生源码完结 每篇一句 围在城里的人想逃出来,站在城外的人想冲进去,婚姻也罢,事业也罢,人生的欲望大都如此…

文章目录

  • 每篇一句
  • 前言
  • 安装虚拟相机
  • 虚拟相机震动测试
  • 代码控制震动
    • 清除震动
    • 控制震动的幅度和时间
  • 两个不同的强弱震动同时发生
  • 源码
  • 完结

每篇一句

围在城里的人想逃出来,站在城外的人想冲进去,婚姻也罢,事业也罢,人生的欲望大都如此。——钱钟书《围城》

前言

相机的抖动我相信大家都不陌生,网上其实已经有非常非常多的教程了,之前我也写过一篇文章,感兴趣的可以先去看看
unity实现简单的摄像机震动效果(包括普通摄像机和虚拟摄像机)

但有时我们可能需要两个震动同时发生,例如,如果我们开启了大门并且又收到伤害,我们希望两个震动结合在一起

我在这里的规则是,更强的震动被优先考虑,但我们不要停止弱震动的进展,而是一起工作,
一旦完成了强震动,弱震动就会继续

最终效果
在这里插入图片描述

安装虚拟相机

实现相机抖动的最简单方法是使用cinemachine虚拟相机
导入cinemachine插件
搜索Cinemachine,安装并导入
在这里插入图片描述

新建虚拟相机
在这里插入图片描述

虚拟相机震动测试

这里body和Aim都不需要,就选择Do nothing

选择Noise ,选择 Basic Multi Channel Perlin
Noise Profile 选择自己喜欢的震动模式(可以挨个自己测试),这里我选择6D Wobble
在这里插入图片描述
AmplitudeGain:表示震动的幅度,设置为0不会震动
FrequencyGain:表示震动的频率
在这里插入图片描述

代码控制震动

新增代码控制

using System.Collections.Generic;
using System.Linq;
using Cinemachine;
using UnityEngine;public class CameraShaker : MonoBehaviour
{private readonly List<ShakeRequest> _requests = new List<ShakeRequest>(); // 用于存储震动请求的列表private CinemachineBasicMultiChannelPerlin _noise; // CinemachineBasicMultiChannelPerlin组件,用于控制相机震动效果private void Awake(){// 获取CinemachineBasicMultiChannelPerlin组件_noise = GetComponent<CinemachineVirtualCamera>().GetCinemachineComponent<CinemachineBasicMultiChannelPerlin>();}private void Update(){if (_requests.Count == 0){_noise.m_AmplitudeGain = 0; // 如果没有震动请求,将AmplitudeGain设置为0,停止震动效果return;}var strongestShake =_requests.Max(shake => shake.ShakeAmount); // 获取最强烈的震动请求_noise.m_AmplitudeGain = strongestShake; // 将AmplitudeGain设置为最强烈的震动请求的幅度}// 请求相机震动,使用默认的持续时间0public void RequestShake(float amount){RequestShake(amount, 0);}// 请求相机震动,指定震动的幅度和持续时间public void RequestShake(float amount, float time){_requests.Add(new ShakeRequest // 向列表中添加一个新的ShakeRequest{ShakeAmount = amount, // 震动的幅度ShakeTime = time // 震动的持续时间});}// 震动请求类,用于存储一个震动请求的幅度和持续时间private class ShakeRequest{public float ShakeAmount { get; set; } // 请求的震动幅度public float ShakeTime { get; set; } // 请求的震动持续时间}
}

挂载点击事件,配置参数,b的振幅比a大
在这里插入图片描述
效果,大的震动会替换小的震动效果,而且无限震动
在这里插入图片描述

清除震动

都按预期工作现在我们需要以某种方式
基本上清除震动以摆脱
那些不应该再存在的震动,
修改脚本

[SerializeField]
private float _shakeDecreaseAmount = 10f;// 震动幅度减少的速率,每秒减少的幅度private void Update()
{//。。。// 遍历所有的震动请求for (var i = _requests.Count - 1; i >= 0; i--){var request = _requests[i];// 减少震动请求的持续时间request.ShakeTime -= Time.deltaTime;// 如果震动请求的持续时间小于等于0,开始减少震动幅度if (request.ShakeTime <= 0){request.ShakeAmount = Mathf.Max(0, request.ShakeAmount - Time.deltaTime * _shakeDecreaseAmount);}// 如果震动幅度已经减少到0,从列表中移除该震动请求if (request.ShakeAmount == 0) _requests.Remove(request);}
}

效果,震动一会,消失
在这里插入图片描述

控制震动的幅度和时间

新增脚本CameraShakeRequester,控制震动的幅度和时间

using UnityEngine;public class CameraShakeRequester : MonoBehaviour
{[SerializeField]private float _shakeAmount; // 请求震动的幅度[SerializeField]private float _shakeTime; // 请求震动的持续时间[SerializeField]private CameraShaker _shaker; // CameraShaker组件,用于控制相机震动效果// 请求相机震动public void RequestShake(){_shaker.RequestShake(_shakeAmount, _shakeTime);}
}

挂载脚本,配置参数,并重新修改配置A、B按钮的点击事件
在这里插入图片描述
效果
在这里插入图片描述

两个不同的强弱震动同时发生

我们A的震动调成振幅为1持续5秒,
B的震动调成振幅为10持续1秒
在这里插入图片描述
运行效果,你会发现,当强弱震动同时产生时,强震动先覆盖弱震动,强震动完成后,再继续执行剩下时间的弱震动,它们能够很好地协同工作
在这里插入图片描述

源码

https://gitcode.net/unity1/unity-shake
在这里插入图片描述

完结

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,以便我第一时间收到反馈,你的每一次支持都是我不断创作的最大动力。点赞越多,更新越快哦!当然,如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

好了,我是向宇,https://xiangyu.blog.csdn.net

一位在小公司默默奋斗的开发者,出于兴趣爱好,于是最近才开始自习unity。如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我可能也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~
在这里插入图片描述

相关文章:

【Unity小技巧】可靠的相机抖动及如何同时处理多个震动(附项目源码)

文章目录 每篇一句前言安装虚拟相机虚拟相机震动测试代码控制震动清除震动控制震动的幅度和时间 两个不同的强弱震动同时发生源码完结 每篇一句 围在城里的人想逃出来&#xff0c;站在城外的人想冲进去&#xff0c;婚姻也罢&#xff0c;事业也罢&#xff0c;人生的欲望大都如此…...

【51单片机】51单片机概述(学习笔记)

一、课程简介 1、硬件设备 51单片机开发板 Win电脑 2、软件设备 Keil5&#xff1a;编写程序代码 STC-ISP&#xff1a;下载程序 有道词典 福昕阅读器 二、开发工具介绍 1、Keil5 keil.com > 下载C51版本 > 使用破解程序 2、STC-ISP 绿色版&#xff1a;直接运…...

make和new的区别

make和new都是golang用来分配内存&#xff08;理论上都是在堆上分配&#xff09;&#xff0c;不同的是 new分配空间只是将内存清零&#xff0c;并没有初始化&#xff1b;而make分配之后只初始化内存new为每个类型都分配&#xff0c;而make专用于slice、map、channew返回类型指…...

vue3获取页面路径

import { useRouter, useRoute } from vue-routerconst router useRouter()router.currentRoute.value.path // 页面路径...

基于STM32闭环步进电机控制系统设计

**单片机设计介绍&#xff0c;1654基于STM32闭环步进电机控制系统设计&#xff08;仿真&#xff0c;程序&#xff0c;说明&#xff09; 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序文档 六、 文章目录 一 概要 基于STM32的闭环步进电机控制系统设计是…...

Java中的队列:各种类型及使用场景

在Java中&#xff0c;队列是一种重要的数据结构&#xff0c;用于存储按特定顺序排列的元素。队列在多线程环境中特别有用&#xff0c;因为它们可以用来解决并发问题。在Java中&#xff0c;队列主要分为以下几种类型&#xff1a; 接口&#xff1a; Queue: 这是Java Queue接口&…...

MappingMongoConverter原生mongo 枚举类ENUM映射使用的是name

j.l.IllegalArgumentException: No enum constant com.xxx.valobj.TypeEnum.stringat java.lang.Enum.valueOf...

Java中的锁:类型,比较,升级与降级

在Java中&#xff0c;锁是一种用于实现并发控制的重要工具。在多线程环境中&#xff0c;锁可以确保数据的一致性和完整性。Java提供了多种类型的锁&#xff0c;包括内置的synchronized关键字&#xff0c;ReentrantLock类以及更高级的并发工具&#xff0c;如StampedLock和ReadWr…...

STM32:串口轮询模式、中断模式、DMA模式和接收不定长数据

一.串口轮询模式底层机制&#xff1a; 在STM32每个串口的内部都有两个寄存器&#xff1a;发送数据寄存器(TDR)/发送移位寄存器,当我们调用HAL_UART_Transmit 把数据发送出去时&#xff0c;CPU会将数据依次将数据发送到数据寄存器中&#xff0c;移位寄存器中的数据会根据我们设置…...

【OJ for Divide and Conquer】OJ题解

文章目录 A - Ultra-QuickSortB - Hanoi Tower Troubles Again! [找规律递归]C - Fibonacci Again[找规律]E - [Fire Net](https://programmerall.com/article/7276104269/)[DFS 搜索 ⭐⭐]F - Gridland[找规律]G - Maximum Subarray Sum[动态规划/分治..经典⭐]I - Quoit Desi…...

使用 Sealos 一键部署 Kubernetes 集群

Sealos 是一款以 Kubernetes 为内核的云操作系统发行版&#xff0c;使用户能够像使用个人电脑一样简单地使用云。 与此同时&#xff0c;Sealos 还提供一套强大的工具&#xff0c;可以便利地管理整个 Kubernetes 集群的生命周期。 Sealos 不仅可以一键安装一个单节点的 Kubern…...

解读电力系统中的GPS北斗卫星同步时钟系统

随着电力系统的快速发展,变电站中的各类系统 &#xff1a;计算机监控系统、水情测报系统、视频监控系统 状态监测系统 生产信息管理系统等&#xff0c;各类装置&#xff1a;继电保护装置、故障录波装置、PMU装置、事件顺序记录SOE功能越来越强大&#xff0c;需要采集、记录的数…...

原子类:Java并发编程的利器

在多线程环境下&#xff0c;确保数据的一致性和原子性是至关重要的。Java提供了一些原子类&#xff0c;用于解决多线程并发问题。这些原子类能够确保操作在多线程环境下是原子的&#xff0c;即不会被其他线程干扰。本文将介绍Java中的原子类及其应用。 一、原子类概述 原子类…...

99%网工都会遇到的经典面试问题

①问题:介绍TCP连接的三次握手?追问:为什么TCP需要握手三次? 三次握手: 第一步:A向B发送一个SYN报文表示希望建立连接 第二步:B收到A发过来的数据包后&#xff0c;通过SYN得知这是一个建立连接的请求&#xff0c;于是发送ACK确认&#xff0c;由于TCP的全双工模式&#xff…...

html和css中图片加载与渲染的规则是什么?

浏览器渲染web页面的过程 解析html&#xff0c;构成dom树 2.加载css&#xff0c;构成样式规则树 3.加载js&#xff0c;解析js代码 4.dom树和样式树进行匹配&#xff0c;构成渲染树 5.计算元素位置进行页面布局 5.绘制页面&#xff0c;呈现到浏览器中 图片加载和渲染的过程 1.解…...

YOLO轻量化改进 , 边缘GPU友好的YOLO改进算法!

在本文中&#xff0c;作者根据现有先进方法中各种特征尺度之间缺少的组合连接的问题&#xff0c;提出了一种新的边缘GPU友好模块&#xff0c;用于多尺度特征交互。此外&#xff0c;作者提出了一种新的迁移学习backbone采用的灵感是来自不同任务的转换信息流的变化&#xff0c;旨…...

第15届蓝桥杯Scratch选拔赛中级(STEMA)真题2023年8月

第15届蓝桥杯Scratch选拔赛中级&#xff08;STEMA&#xff09;真题2023年8月 一、单选题 第 1 题 单选题 点击以下积木块&#xff0c;生成的随机数是一个&#xff08; &#xff09;。 A.整数 B.小数 C.整数或小数 D.以上都不对 第 2 题 单选题 运行以下程序&#xff0…...

c++二叉树遍历

参考文献 数据结构c语言版&#xff0c;严蔚敏_吴伟民著。 二叉树 中序遍历代码实现 #include<vector> #include<iostream> using namespace std;//Definition for a binary tree node. struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode() : v…...

day14_集合

今日内容 零、 复习昨日 一、集合框架体系 二、Collection 三、泛型 四、迭代 五、List(ArrayList、LinkedList) 零、 复习 throw和throws什么区别 throwthrows位置方法里面方法签名上怎么写throw 异常对象throws异常类名(多个)作用真正抛出异常对象声明抛出的异常类型 运行时…...

私有云:架构图

私有云&#xff1a;架构图 1、架构图2、服务器分配及配置3、本地物理机hosts文件配置4、相关软件包5、本地物理机电脑配置参考【内存最好20G往上】 机缘巧合之下突然想玩玩虚拟化&#xff0c;然后就查资料本地自己搭建一套私有云 使用【VMware Workstation】这个虚拟化软件来进…...

在安装和配置DVWA渗透测试环境遇到的报错问题

安装环境 前面的安装我参考的这个博主&#xff1a;渗透测试漏洞平台DVWA环境安装搭建及初级SQL注入-CSDN博客 修改bug 1.首先十分感谢提供帮助的博主&#xff0c;搭建DVWA Web渗透测试靶场_dvwa 白屏-CSDN博客&#xff0c;解决了我大多数问题&#xff0c;报错如下&#xff1…...

深度学习_2 数据操作

数据操作 机器学习包括的核心组件有&#xff1a; 可以用来学习的数据&#xff08;data&#xff09;&#xff1b;如何转换数据的模型&#xff08;model&#xff09;&#xff1b;一个目标函数&#xff08;objective function&#xff09;&#xff0c;用来量化模型的有效性&…...

win 下安装 nvm 的使用与配置

nvm 全名 node.js version management&#xff0c;是一个 nodejs 的版本管理工具。通过它可以安装和切换不同版本的 nodejs。 注&#xff1a;如果已经安装了 nodejs 需先卸载后再安装 nvm 为了确保 nodejs 已彻底删除&#xff0c;可以看看安装目录中是否有 node 文件夹&#x…...

Git笔记

删除最后一次提交 git reset --hard HEAD~1...

省钱兄共享茶室共享娱乐室小程序都有哪些功能

随着共享经济的兴起&#xff0c;共享茶室和共享娱乐室作为一种新型的共享空间&#xff0c;逐渐受到了年轻人的青睐。省钱兄共享茶室共享娱乐室小程序作为该领域的优秀代表&#xff0c;集多种功能于一身&#xff0c;为用户提供了一个便捷、舒适、高效的社交娱乐平台。本文将详细…...

vue-cli方式创建vue3工程

创建工程前&#xff0c;可先用命令行查看是否安装vue-cli。 通过命令行查看vue-cli版本 vue --version 如果已安装vue-cli&#xff0c;则会显示当前安装版本 vue/cli 4.5.13 如果没有安装vue-cli&#xff0c;会提示安装 vue : 无法识别“vue”命令 需要通过npm全局安装v…...

四、W5100S/W5500+RP2040树莓派Pico<TCP Server数据回环测试>

文章目录 1. 前言2. 协议简介2.1 简述2.2 优点2.3 应用 3. WIZnet以太网芯片4. TCP Server数据回环测试4.1 程序流程图4.2 测试准备4.3 连接方式4.4 相关代码4.5 测试现象 5. 注意事项6. 相关链接 1. 前言 在计算机网络中&#xff0c;TCP Server是不可或缺的角色&#xff0c;它…...

技术视角下的跑腿小程序开发:关键挑战和解决方案

跑腿小程序作为连接服务提供者和用户的桥梁&#xff0c;面临着诸多技术挑战。本文将聚焦于技术层面的关键挑战&#xff0c;并提供解决方案&#xff0c;以帮助开发者应对技术上的复杂问题。 1. 实时性与性能挑战 挑战&#xff1a; 跑腿小程序需要实时地匹配订单、更新状态和提…...

Mysql进阶-索引篇(下)

SQL性能分析 SQL执行频率 MySQL 客户端连接成功后&#xff0c;通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指令&#xff0c;可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次&#xff0c;通过sql语句的访问频次&#xff0c;我们可…...

从龙湖智创生活入选金钥匙联盟,透视物业服务力竞争风向

假设你是业主&#xff0c;物业“服务”和“管理”&#xff0c;哪个名词看起来更加亲切、讨喜&#xff1f; 站在个人角度&#xff0c;“服务”更让人感受到温度。但对于一个要长期运营下去的住宅或者商企项目来说&#xff0c;整体的管理又必不可少。前者面向人&#xff0c;后者…...