许可优化
产品
解决方案
服务支持
关于
软件库
当前位置:服务支持 >  软件文章 >  Unity3D FPS帧数修改实现详解

Unity3D FPS帧数修改实现详解

阅读数 9
点赞 0
article_banner

http://www.yxkfw.com/?p=11620

1、在Quality(质量)设置里把帧数设定关闭image之后才能在代码中修改游戏运行的帧数

 

2、在Unity中新建脚本UpdateFrame.cs ,编写如下代码

复制代码
using UnityEngine;
using System.Collections;

/// <summary>
/// 功能:修改游戏FPS
/// </summary>
public class UpdateFrame : MonoBehaviour
{
    //游戏的FPS,可在属性窗口中修改
    public int targetFrameRate = 300;
    
    //当程序唤醒时
    void Awake ()
    {
        //修改当前的FPS
        Application.targetFrameRate = targetFrameRate;
    }
    
}
复制代码


3、把该代码及ShowFPS.js绑定在层次视图的任一GameObject上,运行游戏,即可以Game视图中看到当前的FPS同时可修改targetFrameRate变量来观看结果

ShowFPS.js代码

@script ExecuteInEditMode
 
private var gui : GUIText;
 
private var updateInterval = 1.0;
private var lastInterval : double; // Last interval end time
private var frames = 0; // Frames over current interval
 
function Start()
{
    lastInterval = Time.realtimeSinceStartup;
    frames = 0;
}
 
function OnDisable ()
{
    if (gui)
        DestroyImmediate (gui.gameObject);
}
 
function Update()
{
#if !UNITY_FLASH
    ++frames;
    var timeNow = Time.realtimeSinceStartup;
    if (timeNow > lastInterval + updateInterval)
    {
        if (!gui)
        {
            var go : GameObject = new GameObject("FPS Display", GUIText);
            go.hideFlags = HideFlags.HideAndDontSave;
            go.transform.position = Vector3(0,0,0);
            gui = go.guiText;
            gui.pixelOffset = Vector2(5,55);
        }
        var fps : float = frames / (timeNow - lastInterval);
        var ms : float = 1000.0f / Mathf.Max (fps, 0.00001);
        gui.text = ms.ToString("f1") + "ms " + fps.ToString("f2") + "FPS";
        frames = 0;
        lastInterval = timeNow;
    }
#endif
}



http://www.narkii.com/club/thread-350654-1.html

1.首先在工程中新建一个js脚本,双击该脚本进行编辑,代码如下
  1. var updateInterval = 0.5;

  2. private var accum = 0.0; // Fps accumulated over the interval
  3. private var frames = 0; // Frames drawn over the interval
  4. private var timeleft : float; // Left time for current interval

  5. function Start()
  6. {
  7. if( !guiText )
  8. {
  9. print ("FramesPerSecond needs a GUIText component!");
  10. enabled = false;
  11. return;
  12. }
  13. timeleft = updateInterval;
  14. }

  15. function Update()
  16. {
  17. timeleft -= Time.deltaTime;
  18. accum += Time.timeScale/Time.deltaTime;
  19. ++frames;

  20. // Interval ended - update GUI text and start new interval
  21. if( timeleft <= 0.0 )
  22. {
  23. // display two fractional digits (f2 format)
  24. guiText.text = "" + (accum/frames).ToString("f2");
  25. timeleft = updateInterval;
  26. accum = 0.0;
  27. frames = 0;
  28. }
  29. }
复制代码
2.写好后加入到GUItext即可



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空