在Unity中实现游戏暂停

最简单的暂停游戏的方式

Time.timeScale = 0;

当想继续游戏时

Time.timeScale = 1;

注意

当TimeScale被设置为0时,

  1. Update方法仍然会被调用
  2. FixedUpdate方法不会被调用
  3. Time.time不会继续增加
  4. Time.deltaTime会被影响

若不想受TimeScale影响

Time.unscaledDeltaTime 替换 Time.deltaTime
Time.fixedUnscaledDeltaTime 替换 Time.fixedDeltaTime
Time.unscaledTime 替换 Time.time

协程

用Time.unscaledDeltaTime 替换 Time.deltaTime
用WaitForSecondsRealtime 替换 WaitForSeconds

动画控制器

CullingMode设置为UnscaledTime

如何暂停音频播放

AudioListener.pause = true;

当结束暂停时

AudioListener.pause = false;

如果想在暂停时继续播放某些音效该咋办?

AudioSource.ignoreListenerPause = true;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转自Unity常用API— 奔跑的蜗牛儿 1、Event Function:事件函数 Reset() :被附加脚本...
    JayMeWangGL阅读 2,732评论 0 4
  • This article is a record of my journey to learn Game Deve...
    蔡子聪阅读 3,917评论 0 9
  • 一、Unity简介 1. Unity界面 Shift + Space : 放大界面 Scene界面按钮渲染模式2D...
    MYves阅读 8,499评论 0 22
  • 一、【Unity3D】协程Coroutine的运用[https://blog.csdn.net/yongh701/...
    合肥黑阅读 10,553评论 0 3
  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 13,288评论 3 89