Unity3d帧率设置及在游戏运行时显示帧率

news/2024/11/17 5:47:12/

在Unity3d 中可以通过代码设置 来限定游戏帧率。

Application.targetFrameRate=-1;

设置为 -1 表示不限定帧率,一般情况在手机游戏中我们限定帧率为30 就OK了。

Application.targetFrameRate=30;

但是把这个代码添加到工程之后,在Unity中运行起来发现并没有起作用,于是到官网查看资料,官网的解释是

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 来打开渲染质量设置面板。


1、首先关掉垂直同步,如上图。

设置帧率为100


然后运行后的帧率是 100.


2、设置垂直同步为1


可以看到帧率为 60 帧左右跳动,完全无视了代码中的设定。

3、设定垂直同步为 2


可以看到帧率在 30帧左右跳动。

在游戏中显示帧率代码:

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);
}
}
官网文档中的最后一句……经测试在编辑器状态下是有效的。好了,本篇unity3d教程到此结束,下篇我们再会!
原文地址:http://www.unity.5helpyou.com/3346.html

http://www.ppmy.cn/news/754199.html

相关文章

【Linux实验】构造一个简单的 shell

一、实验目的 l 用 C/C++构造一个简单的 shell; l 理解 shell 程序的功能; l 学会 shell 的使用;

合宙Air724UG LuatOS-Air core API--pwm

Table of Contents pwm pwm.open(id) pwm.close(id) pwm.set(id,param1,param2,clk_div) pwm 脉冲输出接口 pwm.open(id) 打开pwm 参数 参数 类型 释义 取值 id number PWM硬件编号 0(gpio5管脚),1(gpio13管脚) 返回值 返回值 类型 释义 取值 result number 1:表…

苹果手机apn怎么设置

参考   https://g.pconline.com.cn/jxwd/1226/12260856.html      APN指一种网络接入技术,是通过手机上网时必须配置的一个参数,它决定了手机通过哪种接入方式来访问网络。下面为大家介绍苹果手机apn怎么设置。苹果手机apn怎么设置  步骤1、打开…

android 手机网络设置,手机网络怎么设置 史上最详细的手机网络设置教程

随着智能手机的流行与普及,现在国内智能手机系统与手机网络商众多,3G网络主要是中国移动、中国联通以及中国电信三家三足鼎力;手机系统就更多了,谷歌安卓手机系统、苹果IOS手机系统、诺基亚塞班手机系统以及微软WP7手机系统等等&a…

苹果审核规则翻译

3.6
 Apps with App icons and screenshots that do not adhere to the 4 age rating will be rejected(图标与截屏不符合4年龄评级的应用会被拒。) 3.7
 Apps with Category and Genre selections that are not appropriate for the App content wil…

使用iPhone配置实用工具编辑APN设…

iOS:使用 iPhone 配置实用工具编辑 APN 设置 http://support.apple.com/kb/HT4839?viewlocalezh_CN&localezh_CN 本文介绍如何使用 iPhone 配置实用工具编辑蜂窝数据设置。 蜂窝数据设置可确定 iOS 设备访问运营商蜂窝数据网络的方式。本文介绍如何使用 iPhone…

python3 接入IOS推送apn

官方文档地址:ios notification 推送截图步骤: 推送接入方法苹果给出了两种: certificate 证书接入token 接入 token 接入方法 根据文档给出的签名规则获取签名token。 import jwt import time token_dict {iat: int(time.time()),iss:…

手机里面没有apn设置的朋友有福啦!

2019独角兽企业重金招聘Python工程师标准>>> 相信有很多朋友发现自己的手机设置中,没有apn设置网上也查不到教程怎么设置(最多的就是安装描述文件,我也试过了,效果不明显,我也是查了好久,最后绝…