unity解决APP在手机发烫问题
2017-06-20 15:52
253 查看
在Unity3D 中可以通过代码设置 来限定游戏帧率。
[csharp] view
plain copy
Application.targetFrameRate=-1;
设置为 -1 表示不限定帧率。 转自http://blog.csdn.net/huutu
一般在手机游戏中我们限定帧率为30 就OK了。
[csharp] view
plain copy
Application.targetFrameRate=30;
但是把这个代码添加到工程之后,在Unity中运行起来发现并没有什么卵用。。。。
转自http://blog.csdn.NET/huutu
于是到官网查看资料
[html] view
plain copy
http://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html
[plain] view
plain copy
Application.targetFrameRate
public static int targetFrameRate;
Description
Instructs game to try to render at a specified frame rate.
Setting targetFrameRate to -1 (the default) makes standalone games render as fast as they can,
and web player games to render at 50-60 frames/second depending on the platform.
Note that setting targetFrameRate does not guarantee that frame rate.
There can be fluctuations due to platform specifics, or the game might not achieve the frame rate because the computer is too slow.
If vsync is set in quality setting, the target framerate is ignored, and the vblank interval is used instead.
The vBlankCount property on qualitysettings can be used to limit the framerate to half of the screens refresh rate
(60 fps screen can be limited to 30 fps by setting vBlankCount to 2)
targetFrameRate is ignored in the editor.
大意就是说:
Application.targetFrameRate 是用来让游戏以指定的帧率运行,如果设置为 -1 就让游戏以最快的速度运行。
但是 这个 设定会 垂直同步 影响。
如果设置了垂直同步,那么 就会抛弃这个设定 而根据 屏幕硬件的刷新速度来运行。
如果设置了垂直同步为1,那么就是 60 帧。
如果设置了为2 ,那么就是 30 帧。
点击 菜单 Editor -> ProjectSetting -> QualitySettings 来打开渲染质量设置面板。
转自http://blog.csdn.net/huutu
1、首先关掉垂直同步,如上图。
设置帧率为100
然后运行后的帧率是 100.
2、设置垂直同步为1
可以看到帧率为 60 帧左右跳动,完全无视了代码中的设定。
转自http://blog.csdn.Net/huutu
3、设定垂直同步为 2
可以看到帧率在 30帧左右跳动。
转自http://blog.csdn.net/huutu
在游戏中显示帧率代码:
[csharp] view
plain copy
using UnityEngine;
using System.Collections;
using DG.Tweening;
public class NewBehaviourScript : MonoBehaviour
{
private float m_LastUpdateShowTime=0f; //上一次更新帧率的时间;
private float m_UpdateShowDeltaTime=0.01f;//更新帧率的时间间隔;
private int m_FrameUpdate=0;//帧数;
private float m_FPS=0;
void Awake()
{
Application.targetFrameRate=100;
}
// Use this for initialization
void Start ()
{
m_LastUpdateShowTime=Time.realtimeSinceStartup;
}
// Update is called once per frame
void Update ()
{
m_FrameUpdate++;
if(Time.realtimeSinceStartup-m_LastUpdateShowTime>=m_UpdateShowDeltaTime)
{
m_FPS=m_FrameUpdate/(Time.realtimeSinceStartup-m_LastUpdateShowTime);
m_FrameUpdate=0;
m_LastUpdateShowTime=Time.realtimeSinceStartup;
}
}
void OnGUI()
{
GUI.Label(new Rect(Screen.width/2,0,100,100),"FPS: "+m_FPS);
}
}
官网文档中的最后一句……经测试在编辑器状态下是有效的。。
原文链接:http://www.thisisgame.com.cn
[csharp] view
plain copy
Application.targetFrameRate=-1;
设置为 -1 表示不限定帧率。 转自http://blog.csdn.net/huutu
一般在手机游戏中我们限定帧率为30 就OK了。
[csharp] view
plain copy
Application.targetFrameRate=30;
但是把这个代码添加到工程之后,在Unity中运行起来发现并没有什么卵用。。。。
转自http://blog.csdn.NET/huutu
于是到官网查看资料
[html] view
plain copy
http://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html
[plain] view
plain copy
Application.targetFrameRate
public static int targetFrameRate;
Description
Instructs game to try to render at a specified frame rate.
Setting targetFrameRate to -1 (the default) makes standalone games render as fast as they can,
and web player games to render at 50-60 frames/second depending on the platform.
Note that setting targetFrameRate does not guarantee that frame rate.
There can be fluctuations due to platform specifics, or the game might not achieve the frame rate because the computer is too slow.
If vsync is set in quality setting, the target framerate is ignored, and the vblank interval is used instead.
The vBlankCount property on qualitysettings can be used to limit the framerate to half of the screens refresh rate
(60 fps screen can be limited to 30 fps by setting vBlankCount to 2)
targetFrameRate is ignored in the editor.
大意就是说:
Application.targetFrameRate 是用来让游戏以指定的帧率运行,如果设置为 -1 就让游戏以最快的速度运行。
但是 这个 设定会 垂直同步 影响。
如果设置了垂直同步,那么 就会抛弃这个设定 而根据 屏幕硬件的刷新速度来运行。
如果设置了垂直同步为1,那么就是 60 帧。
如果设置了为2 ,那么就是 30 帧。
点击 菜单 Editor -> ProjectSetting -> QualitySettings 来打开渲染质量设置面板。
转自http://blog.csdn.net/huutu
1、首先关掉垂直同步,如上图。
设置帧率为100
然后运行后的帧率是 100.
2、设置垂直同步为1
可以看到帧率为 60 帧左右跳动,完全无视了代码中的设定。
转自http://blog.csdn.Net/huutu
3、设定垂直同步为 2
可以看到帧率在 30帧左右跳动。
转自http://blog.csdn.net/huutu
在游戏中显示帧率代码:
[csharp] view
plain copy
using UnityEngine;
using System.Collections;
using DG.Tweening;
public class NewBehaviourScript : MonoBehaviour
{
private float m_LastUpdateShowTime=0f; //上一次更新帧率的时间;
private float m_UpdateShowDeltaTime=0.01f;//更新帧率的时间间隔;
private int m_FrameUpdate=0;//帧数;
private float m_FPS=0;
void Awake()
{
Application.targetFrameRate=100;
}
// Use this for initialization
void Start ()
{
m_LastUpdateShowTime=Time.realtimeSinceStartup;
}
// Update is called once per frame
void Update ()
{
m_FrameUpdate++;
if(Time.realtimeSinceStartup-m_LastUpdateShowTime>=m_UpdateShowDeltaTime)
{
m_FPS=m_FrameUpdate/(Time.realtimeSinceStartup-m_LastUpdateShowTime);
m_FrameUpdate=0;
m_LastUpdateShowTime=Time.realtimeSinceStartup;
}
}
void OnGUI()
{
GUI.Label(new Rect(Screen.width/2,0,100,100),"FPS: "+m_FPS);
}
}
官网文档中的最后一句……经测试在编辑器状态下是有效的。。
原文链接:http://www.thisisgame.com.cn
相关文章推荐
- 解决手机Android Studio安装app 报错的问题It is possible that this issue is resolved by uninstalling an existi
- ionic 手机app iphone手机点击穿透问题的解决
- 【问题解决】configChanges详解-之解决问题:手机切换字体后,app异常崩溃
- 系统启动后,添加新的Appwidget到手机更新不同步问题解决
- 手机APP测试之ADB常见问题解决方法
- 如何解决Fiddler抓手机app数据包时候遇到的证书问题
- Android 不同手机上安装app时,程序应用图标不一致的问题解决办法
- Unity动态字体在手机上出现字体丢失问题解决
- 手机APP测试之ADB常见问题解决方法
- Android之部分手机(oppo r9s)安装app出现崩溃问题解决办法
- 解决苹果手机锁屏后APP退出的问题及app状态
- 手机APP测试之ADB常见问题解决方法
- 有关手机中文问题传输的解决办法
- 手机连接蓝牙问题解决
- 一次手机问题的解决
- 解决iPhone App程序签名问题
- S60第三版手机软件发布签名问题解决之道
- 如何解决MTK平台手机重启问题
- 手机地形LOD裂缝修补问题的解决方法探索002
- 我的第二个智能手机 HKC G801 严重质量问题 USB接口坏后解决办法