Unity3D实现游戏暂停

2023-11-16

Unity3D实现游戏暂停

要素理解

  • timeScale(Float,默认值为1)能够影响时间流速,置0可使时间暂停
  • 查阅官网文档 Time.timeScale 中可以发现对于timeScale描述中要求暂停物体的函数中所有相关变量与帧无关,而当在realtimeSinceStartup中可以对所有受时间类影响的物体产生影响。
  • 帧无关即指与实际时间无关,Unity中时间计算是由相关变量决定的,很多文章中直接使用“timeScale适用范围与时间相关的变量无效”的描述不够准确。

代码

暂停UI代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class uiController : MonoBehaviour
{

    [SerializeField]Transform UIPanel;
    bool isPaused = false;
    // Start is called before the first frame update
    void Start()
    {
        UIPanel.gameObject.SetActive(false);
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Escape) && !isPaused)
        {
            Pause();
            Debug.Log("GetPause");
        }
        else if(Input.GetKeyDown(KeyCode.Escape)&& isPaused)
        {
            unPause();
            Debug.Log("GetUnpause");
        }
    }

    private void Pause()
    {
        isPaused = true;
        UIPanel.gameObject.SetActive(true);
        Time.timeScale = 0f;
    }
    private void unPause()
    {
        isPaused = false;
        UIPanel.gameObject.SetActive(false);
        Time.timeScale = 1f;
    }
}

以下为测试场景中的移动物体脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class moveSquare : MonoBehaviour
{
    private Vector2 SelfPos;
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        SelfPos = this.gameObject.transform.position;
        SelfPos.x += Time.deltaTime;//此处进行测试
        this.gameObject.transform.position = SelfPos;
    }
}

若更改代码为

SelfPos.x += 0.02f;

物体将不会收到影响。

分析理解

  • 上述代码中修改前与Time类中变量相关,可以理解为deltaTime中包含timeScale作为系数,因此在每帧刷新的过程中SelfPos不会累加,而当修改为常值后,update仍旧持续工作,而对于物体位移可以视为SelfPos.x(末位置)=SelfPos.x(初始位置)+frame*0.02f,便是与帧(实际时间)相关。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity3D实现游戏暂停 的相关文章

  • unity game界面按下play会不断闪烁,按下暂停键(pause)或者中止/下一步(step),game界面的画面会接连变化

    没找到答案 改了两个下午的程序 改完还是这样 后来发现是FixedUpdate Update与OnDrawGizmos的问题 OnDrawGizmos是每帧都会绘制 用FixedUpdate理所当然就那啥了 分析的时候 就突然想到是不是这俩
  • Unity Animator 动画没切换

    恶魔射手 Survival Shooter 项目 有两个动画 一个是静止时的Idle 一个是走路时候的Move 如下图 设置好动画状态机后发现按方向键后还是Idle 没反应 而一直按着方向键后呢又动起来了 最后找到了真相 原来选中了 Has
  • Unity 安卓打包

    Unity打包的方式有很多种 自动打包和手动打包 今天小弟就鼓捣鼓捣unity手动打包 如果想动态打包的话 可以去看其他大佬的帖帖哈 unity打包先配置环境 下载unity的时候可以顺道把unity的安卓包下载下来 如果忘了也没事 可以从
  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发 在最开始介绍场景这个概念的时候就已经提及 这个场景可以是一张地图 或者是一个对战房间等等 所以显然这个场景可以有多个 并且可以从一个场景切换到另外一个场景 那么在Unity中如何进行场景切
  • Unity 分块延迟渲染01 (TBDR)

    现代移动端图形体系结构的概述 现代SoC通常会同时集成CPU和GPU CPU被用于处理需要低内存延迟的序列 大量分支的数据集 其晶体管用于流控制和数据缓存 GPU为处理大型 未分支的数据集 如3D渲染 晶体管专用于寄存器和算术逻辑单元 而不
  • Unity中级客户端开发工程师的进阶之路

    上期UWA技能成长系统之 Unity高级客户端开发工程师的进阶之路 得到了很多Unity开发者的肯定 通过系统的学习 可以掌握游戏性能瓶颈定位的方法和常见的CPU GPU 内存相关的性能优化方法 UWA技能成长系统是UWA根据学员的职业发展
  • Unity Shader入门精要第七章 基础纹理之遮罩纹理

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 实践 参考 前言 遮罩纹理 mask texture 是本章要介绍的最后一种纹理 它非常有用 在很多商业游戏中 都可以见到它的身影 那么什么是遮罩呢 简单来讲 遮罩允许我们
  • Unity中按钮检测鼠标状态

    改方法主要是用于按钮检测鼠标的进入 滑出 点击 抬起 长按 长按停止 1 先将下面这个脚本挂载到需要检测鼠标状态的按钮上 using System Collections using System Collections Generic u
  • Unity中实现倒计时的几种方式

    1 Time time using UnityEngine public class TimeTest MonoBehaviour public float secound 10 void Update Timing private flo
  • Unity与Android的Back键冲突解决

    Unity与Android的Back键冲突解决 上一篇的最后留下了两个问题 Unity视图下横屏闪退 Unity视图下Android无法响应back返回上一activity 对于第一个问题 应该是Unity横屏下视图的某些设置跟Androi
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • Unity旋转以及万向锁问题

    我之前研读了一些关于unity旋转相关的博客 一直想抽个时间写个总结 但是由于实习太忙一直没有写 趁着今天请了假晚上有时间把这段时间一些学习心得写出来 Unity inspector面板中的Rotation 在unity中 想必大家最先接触
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • Unity学习笔记

    一 旋转欧拉角 四元数 Vector3 rotate new Vector3 0 30 0 Quaternion quaternion Quaternion identity quaternion Quaternion Euler rota
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • 游戏开发常见操作梳理之小地图的制作

    游戏中一般存在小地图系统 实际上就是设置一个新的摄像机放置在玩家的正上方 然后在小地图上显示新摄像机看见的东西就可以了 在小地图上一般存在放大地图和缩小地图的按钮可以方便放大和缩小地图 这些操作是如何实现的呢 接下来直接上核心代码 usin

随机推荐

  • 使用pandas把计算数据写入excel的指定单元格

    要使用 pandas 将计算数据写入 Excel 的指定单元格 您可以使用 pandas DataFrame to excel 方法 首先 您需要使用 pandas read excel 方法将 Excel 文件读入一个 pandas Da
  • Stable Diffusion使用方法

    SD的本地安装教程有很多我就不重复了 这里主要是记录我在使用SD Webui的过程中遇到的问题 总结的一些提升出图效率 出好图概率的经验 先搞几张看看效果 二次元妹妹 高达 Ok 以上只是一小部分成品 属于是抛砖引玉之作 我当时设置的参数出
  • word打不开提示安装Genko.msi该怎办

    word打不开提示安装Genko msi该怎办 今天有同学给我说电脑有问题了 启动WORD后让安装Genko msi 正好解决了顺便写一个经验吧 方法一 1 错误提示是这样的 2 首先在开始菜单打开 运行 win7直接开始菜单输入就行 然后
  • webpack5后台管理

    1 系统基于panjiachen后台管理系统模板 升级webpack5 2 github地址 https chengmanxiang webpack5 vue2 admin 3 线上地址 webpack5 vue2
  • Java实战-基于JDK的LRU算法实现、优雅的实现代码耗时统计(Spring AOP、AutoCloseable方式)

    场景 Java中基于JDK的LRU算法实现 LRU算法 缓存淘汰算法 Least recently used 最近最少使用算法 根据数据的历史访问记录来进行淘汰数据 其核心思想是 如果有数据最近被访问过 那么将来被访问的几率也更高 在Jav
  • TS2550: Property ‘entries‘ does not exist on type ‘ObjectConstructor‘.

    TS2550 Property entries does not exist on type ObjectConstructor Do you need to change your target library Try changing
  • requests请求

    请求方式 requests get 发送get请求 通过params传递参数 requests post 发送post请求 通过json data 传递参数 data 数据报文 dict字典类型 默认情况下请求头为applilcation
  • Unity学习总结(学几个月C++,找到了用Unity和C#的活)

    一 主人物控制 通过调整Main Camera位置和角度 可以确定合适的游戏视角 可以建立playController脚本 里面存放对主人物进行控制的代码 transform translate 可以设置当前组件的坐标 transform
  • 【STM32学习笔记】(1)—— STM32详解

    什么是STM32 STM32的字面含义 1 ST 代表着意法半导体公司 即由什么公司生产 意法半导体公司是一家SOC厂商 所谓SOC System on a Chip 根据它的中文意思可以知道 把系统都做在一个芯片上 如果在PC时代我们说一
  • 开放型 MODBUS-TCP规范(中文版)2

    导读 5 3 等级2指令详述 5 3 1 强制多点线圈 FC 15 请求 Byte 0 FC 0F 16进制 Byte 1 2 参考数值 Byte 3 4 比特数 1 800 Byte 5 字节数 B 比特数 7 8 Byte 6 B 5
  • Matlab计算完全消耗系数

    数据来源wiod 1 计算 clear clc eta cell 14 2 year 2000 2013 for i 1 14 eta i 2 1999 i end Type Sheet Fromat xlsfinfo F yida pro
  • 树莓派练习程序(避障模块)

    火焰检测模块如下 树莓派的引脚如下图 我们将Vcc引脚连接物理接口2 GND引脚连接物理接口39 DO引脚连接物理接口40 实物连接如下图 编程使用WiringPi库 使用wpi引脚编码方式控制GPIO 代码如下 include
  • 电路基础(3)电阻电路等效变换的经典例题

    1 R 2 求Rab的等效电阻 这个电路是个对称网络 若通过a b结点做一条中分线 中分线两侧的电路相同 d d d 三点的电位相同 2 求Rab的等效电阻 这个电路是双T网络 每个T形就是一个Y形联结 但两个Y形联结的中点电位一般不同 不
  • Jupyter Notebook打不开,点了后黑窗闪动了下

    版权声明 转载请注明作者 独孤尚良dugushangliang 出处 https blog csdn net dugushangliang article details 114667080 在程序菜单中双击Jupyter Notebook
  • Java API操作Hadoop可能会遇到的问题以及解决办法

    Could not locate Hadoop executable xxx bin winutils exe 1 2 3 4 5 6 Caused by java io FileNotFoundException Could not lo
  • RandomAccessFile类使用详解

    RandomAccessFile类使用详解 疯狂java讲义读书笔记之RandomAccessFile类的使用详解 1 RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类
  • django_安装django-haystack报错_ERROR: Command errored out with exit status 1: python setup.py egg_info C

    问题描述 在阿里云服务器 Ubantu14 0 上安装django haystack报错 ERROR Command errored out with exit status 1 python setup py egg info Check
  • 手机通过RNDIS共享网络

    RNDIS 是 Remote Network Driver Interface Specification 远程网络驱动程序接口规范 的首字母缩写 实际上的作用为 TCP IP over USB 也即把 USB 设备 如手机 作为网卡 是基
  • 用Java开发贪食蛇小游戏

    用Java开发贪食蛇小游戏 一 实验内容 1 实现贪吃蛇游戏基本功能 屏幕上随机出现一个 食物 称为豆子 上下左右控制 蛇 的移动 吃到 豆子 以后 蛇 的身体加长一点 得分增加 蛇 碰到边界或 蛇头与蛇身相撞 蛇死亡 游戏结束 为游戏设计
  • Unity3D实现游戏暂停

    Unity3D实现游戏暂停 要素理解 代码 分析理解 要素理解 timeScale Float 默认值为1 能够影响时间流速 置0可使时间暂停 查阅官网文档 Time timeScale 中可以发现对于timeScale描述中要求暂停物体的