Unity 之 发布PC版本CPU高占用问题解决方案

  • 前言
  • 一,问题背景
  • 二,尝试解决
    • 2.1 尝试方案一
    • 2.2 尝试方案二
  • 三,解决方案
  • 四,一个拓展

前言

之前题目写的是Unity 之 发布Mac版本遇到的问题,所以文中的尝试方法和解决方案都是在Mac上操作的。解决问题后发现是Unity的设置问题,也就不分是Mac还是Windows了,所以修改题目为发布PC端遇到的问题。

一,问题背景

使用Unity开发的一款游戏,在启动后第一个界面(登录界面),放着不动,过了一会就发了Mac的CPU占用直接爆满,温度也一直在升高。而登录进入游戏大厅界面之后,数据就慢慢恢复正常了。

修改前登陆界面:


二,尝试解决

尝试过的解决方法:

2.1 尝试方案一

不清楚问什么首个界面会出现这样的情况,于是在加载登录界面前有添加了一个界面,并且添加一个一个键盘按键进入登陆界面的逻辑,除此之外新添加的界面无任何逻辑。

实践后发现情况还是一样,新加界面和登陆界面都有问题。不过这排除了登录界面逻辑有问题的情况

2.2 尝试方案二

使用同版本Unity在同环境下新建工程,测试是否存在此问题;
实践后发现新工程无此问题,那么经过此测试可以猜测是工程设置问题。

经确认是因为:关闭了垂直同步

点击Unity --> Edit --> Project Setting --> Quality,打开QualitySetting面板,有一个VSync Count参数,该参数表示垂直同步。它有三个值可以选择:

  • Don’t Sync : 不同步 – 我工程设置了这个
  • Every V Blank:每隔一个垂直空白同步 – 新工程默认设置
  • Every Second V Blank:每隔两个垂直空白同步


关于Quality面板的官方API


三,解决方案

经过各种尝试和查找,最终在stackoverflow中看到一个解决方法,是游戏帧率影响的。反推回2.2的尝试方法的思路。

解决问题:
后来我查看了一下代码,原逻辑确实是在进入大厅之后才设置的游戏帧率,在Unity3D中可以通过代码设置来限定游戏帧率。

两个步骤:

  1. 打开 Edit-Project Setting-Quality(质量)的等级下找到V Sync Count(垂直同步数)就可以修改这个等级的垂直同步数,将垂直同步数改为Don’t Sync即可对帧率进行调整。
  2. 在程序启动后的,自动执行的脚本中的Start方法中添加:
 Application.targetFrameRate = 60;

再次打包运行,就可以看到比较正常的状态了:

修改后:


四,一个拓展

Application.targetFrameRate:该API设置游戏尝试使用指定的帧率进行渲染;默认情况下该值为-1

表明使用平台的默认帧率进行渲染, 帧率在各个平台有差异:

  • 在PC端,默认帧率就是机器性能上所能达到的最大帧率
  • 对于移动平台,默认帧率是低于硬件能达到的最大帧率的。事实上对于移动平台的最大帧率等于其屏幕的刷新率(比如机器的屏幕刷新率为60Hz,如果targetFrameRate设置-1的话,其最大帧率只能达到60fps)。
  • 对于WebGL,若使用默认帧率,浏览器会选择使用能最优展示效果的帧率。

科普:参考原文地址

科普:VSync垂直同步又称场同步(Vertical Hold),垂直同步信号决定了CRT从屏幕顶部画到底部,再返回原始位置的时间。从CRT显示器的显示原理来看,单个像素组成了水平扫描线,水平扫描线在垂直方向的堆积形成了完整的画面。显示器的刷新率受显卡DAC控制,显卡DAC完成一帧的扫描后就会产生一个垂直同步信号(决定于屏幕的刷新率)。我们平时所说的打开垂直同步指的是将该信号送入显卡3D图形处理部分,从而让显卡在生成3D图形时受垂直同步信号的制约(注意是制约)。如果我们选择等待垂直同步信号(也就是我们平时所说的垂直同步打开),那么在游戏中或许强劲的显卡迅速的绘制完一屏的图像,但是没有垂直同步信号的到达,显卡无法绘制下一屏,只有等垂直同步的信号到达,才可以绘制。这样FPS自然要受到操作系统刷新率运行值的制约。而如果我们选择不等待垂直同步信号(也就是我们平时所说的关闭垂直同步),那么游戏中作完一屏画面,显卡和显示器无需等待垂直同步信号就可以开始下一屏图像的绘制,自然可以完全发挥显卡的实力。但是不要忘记,正是因为垂直同步的存在,才能使得游戏进程和显示器刷新率同步,使得画面更加平滑和稳定。取消了垂直同步信号,固然可以换来更快的帧率,但是在图像的连续性上势必打折扣

Unity 之 发布PC端CPU高占用温度高的问题解决方案相关推荐

  1. unity学习 — 关于Unity发布PC端程序,窗口最大化并带有任务栏的实现

    关于Unity发布PC端,程序运行充满整个屏幕并带有窗口任务栏 一:简单介绍 二:一个脚本解决问题 支持 一:简单介绍 1,用Unity打包发布PC程序,有时候不充满整个屏幕,感觉效果不好,需要在打开 ...

  2. 关于UnityPC端打包参数设置及发布PC端时固定分辨率

    UnityPC端打包参数设置 主要设置都在PlayerSettings里面 Company Name:设置公司名称 Product Name:设置项目名称,这个获取窗体句柄的时候用的到 Default ...

  3. pc端微博分享 html,新浪微博发布PC端网页版V6版本 信息流呈现卡片化

    今日,微博正式对外发布PC端V6版本.新版微博的整体风格更为简洁,其中,PC端的微博信息流将和移动端一样,以卡片的形式出现. 微博副总经理林水洋在会上指出,微博用户的兴趣点已经由关注热点事件以及明星动 ...

  4. CPU负载占用过高,该如何排查问题呢?

    快过年了,最后两天的工作量相对来说少了很多,于是抽空学了一下Linux相关的基础命令. 才子白问:学了啥子东西,分享一下呗! 成子:学了基础的Linux命令,跟你分享,你听得懂嘛? 才子白:那我考考你 ...

  5. 关于使用WindowsUpdate 或 Windows 自动升级时碰到的 svchost.exe 进程 CPU 资源占用过高的问题的相关信息...

    当你使用 WindowsUpdate 或 Windows 自动升级的时候,可能会碰到 svchost.exe 进程CPU占用100%的现象.如果你的现象符合下面的相关症状,请安装一个补丁程序用于缓解这 ...

  6. unity打包webgl PC端和移动端使用

    测试版本unity5.6.3版本 PC端浏览器    win10自带的浏览器 (谷歌没能打开-----肯定是可以的,暂时没去找办法) 移动端安卓(无ios手机)     主机局域网内做iis再使用移动 ...

  7. eclipse经常高占用_高可用系统的设计指南

    可靠的系统是业务稳定.快速发展的基石.那么,如何做到系统高可靠.高可用呢?下面从技术方面介绍几种提高系统可靠性.可用性的方法. 扩展 扩展是最常见的提升系统可靠性的方法,系统的扩展可以避免单点故障,即 ...

  8. 360浏览器打不开网页_苹果移动端、PC端safari浏览器打不开网页的解决方案!

    你还在为苹果自带的safari浏览器打不开网页而苦恼吗,接下来的答案会帮助你解决苦恼. 苹果自带safari浏览器的设备分为两种:移动端.PC端.因此不同设备出现safari浏览器打不开网页的情况需要 ...

  9. NVIDIA 显卡温度提示过高,显卡温度高99度怎么办?

    你可能没有在意您的NVIDIA(英伟达)显卡温度,那么你就不会知道显卡温度过高如何导致的呢?也不会知道如果去解决显卡温度过高的问题了,在此我希望在电脑玩游戏或者在办公中电脑速度快慢,或者发热的情况下, ...

  10. 服务器异常 随机名称的进程CPU资源占用过高

    操作系统: Ubuntu 16.04 之前部署完odoo12后就经常出现服务挂掉的情况,查看状态一般都是某某包缺失,然后各种安装包,重启服务,这次发现CPU占用达到399%,而且每次进程名称都是随机的 ...

最新文章

  1. linux 查询替换文件内容吗,Linux 下查询文件的方法 替换文件内容
  2. SVN Cannot merge into a working copy that has local modifications
  3. 基于springboot 改造 open-shop小程序商城
  4. 设计模式之MVC设计模式初阶
  5. Python 被爆大 Bug,攻击者可远程代码执行漏洞!
  6. java 将数据加载到内存中
  7. Label-Specific Dual Graph Neural Network for Multi-Label Text Classification,ACL2021 finding
  8. (转) latch 入门
  9. B/S系统界面设计与开发详解
  10. Tomcat运行成功但是报500错误
  11. 设计师学python有什么用_Python是个什么鬼?为什么设计大牛都在学它?!
  12. iOS音乐播放器实现后台播放锁屏界面控制
  13. HTML标签----图文详解
  14. 九江高考2021成绩查询,2021九江市地区高考成绩排名查询,九江市高考各高中成绩喜报榜单...
  15. Jmeter自定义函数开发-------输入参数被分割
  16. 如何解决模具折弯尺寸不稳定?
  17. RV1126RV1109 buildroot 增加串口屏测试
  18. 两分钟研究透idea中Git文件的颜色,绿红蓝白灰
  19. 决策规划算法相关知识之 POMDP模型
  20. 入侵检测系统 IDS 简析

热门文章

  1. 如何获取mac虚拟机激活码 一步学会
  2. html word 页面视图,word页面视图视图和web视图的区别
  3. Xunsearch体验Demo
  4. 给系统闹钟设置时间Alarm
  5. Java类和对象:private/public/friendly/封装
  6. 华丽成长为IT高富帅、IT白富美(五)
  7. 在Linux中禅道的安装流程
  8. 洛谷p3764签到题3
  9. 加减乘除开平方运算java_数值问题(加减乘除、开方、平方)
  10. 冯诺依曼体系结构及三级缓存