【Unity游戏开发之一】Time.timeScale=0暂停游戏的情况下播放动画

前提条件:在项目中用过Time.timeScale = 0来实现游戏暂停

问题: 暂停游戏后,暂停界面的按钮可能需要播放一个idle时的动画,Time.timeScale=0 会影响动画播放。

受Time.timeScale影响的因素:

1.物理模拟. FixedUpdate - 当Time.timeScale=0时,FixedUpdate 函数不会被执行。

2.Coroutines.
- Time.timeScale=0 协程函数不会停止,但是会停止WaitForSeconds. 协成函数还是会每一帧都触发,但是WaitForSeconds使用的是当前的Time.deltaTime会变成0

3.Invoke 
InvokeRepeating. -延迟一段时间后掉用指定函数.

4.Particle
System
 粒子系统.

5.Animations.
-动画. 如果我们使用的是Animator,可以设置动画忽略Time.timeScale带来的影响.
只需要把UpdateMode设置为UnScaled Time,设置如下:

不受 Time.timeScale影响的因素:

1.Update
- Time.timeScale不会影响Update的调用,Update会一直被调用。但是如果Time.deltaTime=0,如下实现不会工作:

function Update () {
    // Move the object 10 meters per second!
    var translation = Time.deltaTime * 10;
    transform.Translate (0, 0, translation);
}

2.OnGUI
-OnGui和对应的事件实现原理不基于Time.timeScale,所以也不会受影响。

参考:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 18:47:30

【Unity游戏开发之一】Time.timeScale=0暂停游戏的情况下播放动画的相关文章

Unity 2D游戏开发教程之使用脚本实现游戏逻辑

Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态.但是这其中还有一些问题.例如,我们无法使用键盘控制精灵当前要进入的动画状态,而且精灵也只是在原地播放动画而已.但我们希望精灵在进入到PlayerWalkingAnimation状态时,位置应该发生改变. 要解决这些问题,就需要编写脚本.也就是说,要使用脚本来实现动画的播放控制,以及其它一些游戏的逻辑

C#游戏开发快速入门 2.1 构建游戏场景

C#游戏开发快速入门 2.1  构建游戏场景 如果已经计划好了要编写什么样的游戏,在打开Unity以后,要做的第一件事情就是构建游戏场景(Scene).游戏场景就是玩家游戏时,在游戏视图中看到的一切,包括游戏背景.游戏角色.阳光等等,这些所有可视的元素在Unity中,被统称为游戏对象(GameObject).本节就先来学习游戏场景的构建. 2.1.1  新建游戏场景 就像是创建游戏就需要要新建游戏项目一样,构建游戏场景也是需要新建游戏场景的.只不过,Unity在开发者新建游戏项目的时候,已经默认

【Unity3D游戏开发】—— 太空大战打飞机游戏详解

大家好我是Kaven,今天给大家带来的是一个Unity3D的打飞机的小项目.俗话说"眼看千变,不如手过一边",学了差不多两星期Unity3D了,是时候找个小项目练练手了.于是就翻出了cocos2d-x的一个例子,模仿着写了一个飞机大战的游戏,虽然有一些功能没有实现,但总体上是完成了.闲话少说,下面开始吧. 由于这个用的是Unity3d自带的原生的2D插件native 2d,所以创建项目时左下角选择2d. 这个小游戏我分了三个场景,菜单场景,游戏场景,结束场景.由于菜单场景与结束场景都比

Unity3D游戏开发之使用disunity提取Unity3D游戏资源

各位朋友,大家好,我是秦元培.今天博主想和分享的是使用disunity提取Unity3D游戏素材.这个工具呢,博主在Unity3D游戏开发之反编译AssetBundle提取游戏资源这篇文章中其实已经提到过了,不过因为有些朋友对如何使用这个工具依然存在问题,所以博主决定特地写一篇文章来讲解如何使用disunity来提取Unity3D游戏中的素材. 准备工作 disunity:负责对Unity3D的数据文件进行解包 Unity3D:负责将导出的数据文件显示出来 Bleander或者3DsMax:负责

关于在开发板和电脑用网线直接连接的情况下如何ping通,nfs挂载

1.关于在开发板和电脑用网线直接连接的情况下,开发板.ubuntu虚拟系统.电脑主机如何ping通 ①.虚拟机的ubuntu网络连接必须是桥接模式,ubuntu系统启动之前电脑主机必须要有网络,否则会提示 启动ubuntu系统,启动后用网线直接连接电脑和开发板,然后启动开发板,不进boot菜单模式,启动系统,开发板启动系统后才会形成另一个网络节点,没启动之前和在boot菜单界面电脑主机是没有本地ip地址的,启动之后开发板和电脑形成一个网络,电脑主机才会有本地ip地址,所以要保持开发板系统运行.

unity3D游戏开发之浅谈如何提高游戏生命力

游戏中某些时候,玩家会处于"空闲"状态,即处于无事可干的状态.那么为什么会造成这种情况呢?又如何避免让玩家处于"空闲状态"呢?我试着分析下,可能有以下几个原因: 1.节奏控制不合理 节奏的控制不合理.让玩家在游戏某一阶段"紧张"时间过长,或者松弛太久都是不好的.松紧张弛有度,才能造成玩家不至于太空闲. 例如玩家在野外打怪,或者下FB,这个过程就是"紧"的过程.当玩家背包满了,这个时候肯定要回城清包.交任务.存放东西.去拍卖行.

【H5小游戏开发教程】如何限制微信游戏只能在微信端打开?

在这行里接触的时间多了,就会发现很多有意思的东西. 比如,很多微信小游戏会限制只能在微信端打开,有木有? 有这样的, 也有这样的, 妈蛋,不能用PC访问,这游戏就没法扒呀..... 其实涛舅舅告诉你,这两种都可以扒 而且是用PC! 但是今天,我不教你扒皮 我要教你的是,怎么让你的微信游戏也能限制PC打不开 很想学吧  准备开始! 1.第一种不提了,因为人家是设置了微信授权登录,从微信那里就拦截住了,只能用微信访问,你可能弄不了这么高级的微信授权这块,如果你真能弄,这一讲你也不用听了,因为你已经能

【Unity3d游戏开发】UGUI插件入门之游戏菜单

ugui是unity4.6开始加入的一个新的ui系统,非常强大,下面我们将通过一系列博客的方式一起来学习一下ugui的使用.本篇博客会介绍如何使用ugui制作一个游戏菜单,并且了解如何让物体与ugui的控件交互,效果图如下: 首先还是新建一个unity工程,并且新建一个场景,然后新建一个Canvas画布,我们所有的ui控件,都是要建立在Canvas上面的.然后在Canvas下面建立一个button重命名为StartButton,并调节成效果图中的样式.然后再复制两份出来,把他们放置到如效果图的位

Swift游戏开发之俄罗斯方块:No.8 游戏规则

每个游戏都有它自己的规则,我们的俄罗斯方块的规则很明显,shape落到最底端时就停止下落,然后下一个shape开始往下落:当任一一个点挡住下落的shape时,整个shape就认为是已经到底了:当一行充满所有blocks时,这行消除,然后所有的往下落一行等等等等. 那么我们现在就开始制定我们的游戏规则,本节过后,我们的程序运行起来是这样子的: 我们首先从自定义的协议(protocol)开始,之前我们已经接触过两个swift自带的协议,hashable和printable.我们首先在swiftris