unity3d 摄像机抖动效果 CameraShake
unity3d 摄像机抖动效果 ,利用脚本直接控制;当然也可以选择使用dotween插件,但到不至于为了使用仅一个功能,就导入了一个插件;
脚本示例:
using UnityEngine;
using System.Collections; public class CameraShake : MonoBehaviour
{
public Transform cameraTransform;
private Vector3 _currentPosition; //记录抖动前的位置
private float _shakeCD = 0.002f; //抖动的频率
private int _shakeCount = -; //设置抖动次数
private float _shakeTime;
void Start ()
{
if(cameraTransform == null) cameraTransform = transform; _currentPosition = cameraTransform.position; //记录抖动前的位置
_shakeCount = Random.Range (, ); //设置抖动次数
}
void Update ()
{
if(_shakeTime + _shakeCD < Time.time && _shakeCount > )
{
_shakeCount --;
float radio = Random.Range (-0.01f, 0.01f); if(_shakeCount == ) //抖动最后一次时设置为都动前记录的位置
radio = ; _shakeTime = Time.time;
cameraTransform.position = _currentPosition + Vector3.one * radio;
}
}
}
另一版本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// this Script need a Component Of camera
/// </summary>
public class myCameraShake : MonoBehaviour {
private float m_FduringTime = 2.0f;
[SerializeField]
private bool m_BisOnShake = true;
[SerializeField]
private int m_IyshakeLength =;
private Transform m_TCamera;
private Vector3 m_OldPos;
private float mtime = ;
void Awake()
{
if (this.transform.GetComponent<Camera>() == null && GameObject.FindObjectOfType<myCameraShake>() == null)
{
Camera.main.gameObject.AddComponent<myCameraShake>();
}
m_TCamera = Camera.main.transform;
m_OldPos = m_TCamera.position;
}
void Start ()
{ }
private void Update()
{
if (m_BisOnShake)
{
mtime+=0.1f;
if (mtime < m_FduringTime)
{
m_IyshakeLength = Random.Range(-, );
if(m_IyshakeLength!=)
m_TCamera.position = Vector3.Lerp(m_OldPos, new Vector3(m_OldPos.x, m_OldPos.y + m_IyshakeLength, m_OldPos.z), 0.05f);
}
else
{
m_BisOnShake = !m_BisOnShake;
}
}
}
}
unity3d 摄像机抖动效果 CameraShake的更多相关文章
- unity3d 摄像机抖动特效
摄像机抖动特效 在须要的地方调用CameraShake.Shake()方法就能够
- CSS Shake – 摇摆摇摆!动感的 CSS 抖动效果
CSS Shake 是一套 CSS3 动画特效,让页面的 DOM 元素实现各种效果的抖动(Shake),这些效果可以轻松的被应用到按钮.LOGO 以及图片等元素.所有这些效果都是只需要单一的标签,加上 ...
- iOS 为视图添加抖动效果
抖动效果在开发中比较少用到,不过有时使用了确有个很好的装逼效果,用的时候就例如一些用户错误操作之类的 效果如下,不过gif看到的效果没实际的好看 上代码 - (void)shakeAnimationF ...
- jQuery实现抖动效果
//抖动效果 //intShakes:抖动次数:intDistance:抖动左右距离:intDuration:持续时间 jQuery.fn.shake = function (intShakes, i ...
- 让DIV实现抖动效果!
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- IOS中对于一些控件的抖动效果
这两天在网上看到一个帖子讨论关于有些app 输入账密时候 错误的话会有抖动效果出现,然后自己琢磨了下如何实现,下面上代码!!! 首先 写一个UIView的分类 #import <UIKit/UI ...
- 通用的Android控件抖动效果实现
这个小程序的功能在实际的开发中会用到,比如:设置Button左右晃动,或者上下的晃动效果,下面就给出示例代码. 首先:要定义一个xml文件,命名为Shake [html] view plain cop ...
- iOS - View的抖动效果
/** * 抖动效果 * * @param view 要抖动的view */ - (void)shakeAnimationForView:(UIView *) view { CALayer *view ...
- Jquery实现的图标抖动效果
原文:http://www.webdm.cn/webcode/75de64a9-3fb4-473d-bc2c-97a0a063be79.html <!DOCTYPE html PUBLIC &q ...
随机推荐
- 使用nginx实现浏览器跨域请求
跨域访问问题, 相信很多人都遇到过, 并且都用不同的办法去解决过. 方法有很多种, 不一一叙述了. 这里主要使用nginx反向代理来解决跨域问题. 啥是跨域? 假如你是百度开发人员, 在百度页面去请求 ...
- c# 界面自适应大小
采用在窗体事件SizeChanged里面代码控制大小和位置,达到自动适应窗体大小,这样做调整起来方便. private void FrmMain_SizeChanged(object sender, ...
- 06-jQuery的文档操作(重点)
之前js中咱们学习了js的DOM操作,也就是所谓的增删改查DOM操作.通过js的DOM的操作,大家也能发现,大量的繁琐代码实现我们想要的效果.那么jQuery的文档操作的API提供了便利的方法供我们操 ...
- -webkit-line-clamp 限制多行文字
一.应用 CSS代码: .box { width: 100px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: ve ...
- LeetCode(6):Z字形转换
Medium! 题目描述: 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:(下面这样的形状) P A H N A P L S I I G Y I R 之后按 ...
- python接口自动化测试二十七:加密与解密MD5、base64
# MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl ...
- python3 + selenium 之警告和弹窗
获取警告框信息 texts = driver.switch_to_alert().text #获取警告文本 print(texts)#得到弹窗的文本消息,比如得到:请输入用户名! 使用switch_t ...
- java 泛型 ? 和 T的区别
看了一个CSDN的问题,感觉就清楚了:http://bbs.csdn.net/topics/300181589/ 摘录其中的重点: 泛型方法: public <T extends Object& ...
- webpack 使用环境变量
要在开发和生产构建之间,消除 webpack.config.js 的差异.你可能需要环境变量. 可以使用 Node.js 模块的标准方式:在运行 webpack 时设置环境变量,并且使用 Node.j ...
- POJ 2376 Cleaning Shifts【贪心】
POJ 2376 题意: 给出一给大区间和n各小区间,问最少可以用多少小区间覆盖整个大区间. 分析: 贪心法.设t为当前所有已确定区间的最右端,那我们可以每次都取所有可选的小区间(左端点<=t+ ...