在以前,学习xna游戏框架时,由于xna封装的游戏元素很少,很多功能,只能自己去写一篇;

如:子弹时间效果;

先来介绍一个何为“子弹时间”效果;

这得始源于:著名科幻电影《黑客帝国》中男主角有一幕,敌方子弹扫射中,男主,以超快的速度,对子弹的闪避过程,这一过程,感觉整个世界的时间都变慢了,只是我们观察的人反应没有变慢的感觉---这一过程就是子弹时间;

得知子弹时间的定义后,我们可以知道,游戏多,一些电影,电视,游戏,中的各种摄影效果中,特效中;

都有用到子弹时间的表现方式;

如:

DNF,的BOSS最后致命一击;

孤岛危机 的加速动作;

或是现在有一些2D横版页游,都有制作了子弹时间效果;

那这些效果,在Unity 中,如果实现?

很简单就可以实现:Time.timeScale = .1f; // 就以比正常速度,慢10倍的效果来播放;

这得归功于,Unity 的GameObject对象处理流程;

GameObject中,都有:FixedUpdate,Update两个方法;

前者是以,固定的一个时间频率去调整;

后者,则根据前定的FPS速率有影响关系;

Unity 中需要实时的呈现有效的运算效果,那就得写在:FixedUpdate方法,如:物理运算(Unity自带的钢体,都是在这运算),等;

这样,就算,我们把播放速度,变慢,也不会影响到FixedUpdate实时的更新物理逻辑层的呈现效果;

假如,你有一个2D横版的小DEMO;

你有一个主角,给主角加一个脚本控制;

BulletTime.cs

using UnityEngine;
using System.Collections;public class BulletTime : MonoBehaviour {...float timeScaleDelta = .05f;// Use this for initializationvoid Start () {...}// Update is called once per framevoid Update () {...float spX = Input.GetAxis("Horizontal");float spY = Input.GetAxis("Vertical");// spX, spY 处理上下左右if (Input.GetKeyDown(KeyCode.W)) // 按下W时,把子弹时间加速播放{Time.timeScale += timeScaleDelta;}else if (Input.GetKeyDown(KeyCode.S)) // 按下S时,把子弹时间减速播放{if (Time.timeScale < 0) Time.timeScale = 0;else Time.timeScale -= timeScaleDelta;}}void FixedUpdate(){...}...
}

这样,如果你有控制,主角跳,飞之类的动作,主角在空中时,多按几次:S键,就可以看到,动作变慢了,可以清晰的看到慢动作的:子弹时间效果;

是不是帅呆了;

2D测试资源包:(包有点大,没有去掉其它多余的:NGUI, PlayMaker,都有,还有对一些动画系统的测试)

Jave's Unity Testing Package

下载了资源包,最新一个空项目,再导入,打个:2DCharactorControllerTesting这个场景,

运行,

再按下:上,下,左,右,跳,或移动;

再按下,W,S键调整子弹时间效果;

提示:这个Time.timeScale 的涉及效果范围是,Unity 中,所有,更新与时间相关的都会有影响;

如:GUI,NGUI,或是其它的一些角色动画等;

如果你实现类似,主角,操作不影响(移动,跳,攻击,等其它的一切操作),其它所有,怪物,场景动画(天气,多背景移动层,等)都变慢;

那么就不应该使用Time.timeScale去实现了;

如果要实现这样的效果,首先就要考虑到,对象的更新时间,你是可控的,最好不是内置的;或是受timeScale影响的;

如:你的主角动画:如果你想Time.timeScale设置之后,依然不影响主角动画;

那么主角动画的播放就应该使用自己写的一套管理方法,可以使用到,Time.realtimeSinceStartup的时间间隔作判断,以播放动画;

解决方案:

如果硬要实现以上的需求:

可以去看一下这两个插件:

http://forum.unity3d.com/threads/136139-Pause-Controller-Released-Group-Pausing-without-timeScale-0

http://forum.unity3d.com/threads/188179-Time-Control-and-Pause-Kit-(inc-Bullet-Time-Freeze-Fast-Motion-etc)-RELEASED

直接开翻墙后,看第二个的视频,就是你想要的效果;

Unity 中实现子弹时间效果相关推荐

  1. 揭晓电影中的子弹时间与Nerf新视角合成

    ©作者 | 江告 元宇宙与子弹时间 近期大火的元宇宙,是利用科技手段进行链接与创造的,与现实世界映射与交互的虚拟世界. 人们所假定的元宇宙是一个和真实世界有着相似的元素和属性,并且可以和真实世界进行交 ...

  2. 如何在Unity中实现震动反馈效果

    一.Unity中提供了震动的接口:Handheld.Vibrate(); Unity提供的这个接口的震动时长是0.5s.不能缩短震动时长 二.在Unity中要自定义震动时长的话,那就得在android ...

  3. [教程] 在Unity中制作物体破碎效果

    这篇教程将教大家如何在Unity中制作一个简单的碎片效果.当物体撞击或销毁时,我们将物体分裂为更小的碎片来取代之前的仅仅直接"删除"物体. 需求 这篇教程需要最新版本的Unity, ...

  4. Unity中制作UI光晕效果(发光效果)

    Unity中,我们怎么制作UI物体发光的渐隐渐现的效果呢? 比如说我们有一张月亮光晕的精灵图片 我们可以给它添加一个CanvasGroup组件 我们可以发现,组件上的Alpha值可以控制图片的透明度, ...

  5. Unity中实现翻书效果——Book Page Curl Pro插件

    一:效果演示 二:介绍 --插件下的Scripts文件夹下有四个脚本 BookPro脚本是挂载到BookPro预制体上的,最最重要 Auto Flip脚本是实现自动翻页或者按钮翻页的扩展脚本 Page ...

  6. Unity中的淡入淡出效果

    一.问题 想要在场景的转换做个过渡,不想直接的跳转.最简单的就是做个淡入淡出的效果. 二.搜索 百度基本是不指望了,资料太少,所以要用google,并且英文搜索. 搜关键字"unity3d ...

  7. Unity中SpriteRender实现广告牌效果

    通过刷新修改SpriteRender组建来实现一个翻广告牌的效果,一般的资源原图最好是能两张或更多,实现起来就能类似广告牌那样展现,或者只有一张也可以单独作为一个显示图片的动画来用: 首先是游戏场景中 ...

  8. Unity中UI的LookAt效果实现

    代码: //参数分别为:1.UI修改目标的Transform 2.朝向向量 3.起始向量public void UILookAt(Transform transform, Vector3 dir, V ...

  9. unity中瞄准倍镜效果和源码

    以上是效果展示图. 看起来可能很粗糙,大家不要介意!哈哈哈哈.功能实现就行了.

最新文章

  1. Voice LAB-1 CUBE Cisco Unified Border Element
  2. systemctl介绍
  3. MATLAB报错“Exception in thread FileDecorationCache request queue java.lang.OutOfMemoryError: Java “
  4. 为什么matlab显示error,【求救】我安装了资源 MATLAB R2012b 后,显示有error……
  5. JAVA随机生成文件名:当前年月日时分秒+五位随机数
  6. jupyter notebook 操作
  7. 《计算机应用基础》18春作业,【北语网院】18春《计算机应用基础》作业_4.pdf...
  8. 【leveldb】资料
  9. MySQL安装配置详细教程
  10. 微信小程序二手交易系统ssm框架
  11. html标题和段落标记,Chap 03 HTML文字与段落标记
  12. Linux ssh登陆命令
  13. manjaro/arch chrome an application wants access to the keyring default keyring but it is locked 解决
  14. python利用tushare下载数据并计算当日收益率
  15. 深度揭秘阿里云函数计算异步任务能力
  16. Linux②—概述与基本命令,springboot微信点餐系统百度云
  17. 希捷 sshd 微型计算机,希捷2TB SSHD拆解/核心技术分析_希捷 Desktop 2TB 7200转 8GB混合硬盘_内存硬盘-中关村在线...
  18. js遍历对象(js遍历对象的所有属性)
  19. Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached
  20. 为什么越来越多的企业选择智能客服系统?

热门文章

  1. OpenGl入门基础知识-叩开3D的心扉
  2. 个人博客添加网易云音乐Flash插件
  3. bash输出颜色字体
  4. 有哪些适合放在程序员办公桌上的高逼格物件?
  5. 怎样恢复计算机管理员用户,忘记了电脑系统Administrator账户的密码?如何恢复?...
  6. Oracle 4月安全通告
  7. 1.windows11开启wsl2并安装Ubuntu 20.04
  8. Ethereum Introduction
  9. 华为鸿蒙创始人,华为鸿蒙操作系统怎样 华为创始人任正非:苹果是隐私榜样...
  10. 一次完整的JVM堆外内存泄漏故障排查记录