unity实时显示fps脚本、设置分辨率脚本、设置shader的最大lod

转载自http://blog.csdn.net/Aries_H/article/details/52787286
将下面的脚本挂在camera上



----------


using UnityEngine;
using System.Collections;

public class ShowFPS_OnGUI : MonoBehaviour
{

    public float fpsMeasuringDelta = 2.0f;

    private float timePassed;
    private int m_FrameCount = 0;
    private float m_FPS = 0.0f;

    private void Start()
    {
        timePassed = 0.0f;
    }

    private void Update()
    {
        m_FrameCount = m_FrameCount + 1;
        timePassed = timePassed + Time.deltaTime;

        if (timePassed > fpsMeasuringDelta)
        {
            m_FPS = m_FrameCount / timePassed; //是否需要乘以Time.timeScale 需要注意下

            timePassed = 0.0f;
            m_FrameCount = 0;
        }
    }

    private void OnGUI()
    {
        GUIStyle bb = new GUIStyle();
        bb.normal.background = null;    //这是设置背景填充的
        bb.normal.textColor = new Color(1.0f, 0.5f, 0.0f);   //设置字体颜色的
        bb.fontSize = 40;       //当然,这是字体大小

        //居中显示FPS
        GUI.Label(new Rect((Screen.width/2)-40, 0, 200, 200), "FPS: " + m_FPS, bb);
    }
}

设置Android屏幕分辨率的脚本

using UnityEngine;
using System.Collections;

public class CameraSetup : MonoBehaviour {

     public int ScreenWid = 1280;
     public int ScreenHei = 800;
     private int scaleWidth ;
     private int scaleHeight ;

     // Use this for initialization
     void Start () {
          setDesignContentScale();

     }

     public void setDesignContentScale()
     {
#if UNITY_ANDROID
          //if(scaleWidth ==0 && scaleHeight ==0)
          //{
               int width = Screen.currentResolution.width;
               int height = Screen.currentResolution.height;
               int designWidth = ScreenWid;
               int designHeight = ScreenHei;
               float s1 = (float)designWidth / (float)designHeight;
               float s2 = (float)width / (float)height;
               if(s1 < s2) {
                    designWidth = (int)Mathf.FloorToInt(designHeight * s2);
               } else if(s1 > s2) {
                    designHeight = (int)Mathf.FloorToInt(designWidth / s2);
               }
               float contentScale = (float)designWidth/(float)width;
               if(contentScale < 1.0f) { 
                    scaleWidth = designWidth;
                    scaleHeight = designHeight;
               }
          //}
          if(scaleWidth >0 && scaleHeight >0)
          {
               if(scaleWidth % 2 == 0) {
                    scaleWidth += 1;
               } else {
                    scaleWidth -= 1;                        
               }
               Screen.SetResolution(scaleWidth,scaleHeight,true);
          }
#endif
     }

     void OnApplicationPause(bool paused)
     {
          if (paused) {
          } else {
               setDesignContentScale();
          }
     }

     // Update is called once per frame
     void Update () {
     }
}

设置shader的最大全局分辨率脚本

using UnityEngine;
using System.Collections;

public class shaderLOD : MonoBehaviour {
    //public GameObject waterObj;
    //public GameObject waterObj2;
    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void OnGUI ()
    {
        if (GUI.Button(new Rect(60, 100, 200, 60), "Toggle Hight Quality Shader!"))
        {
            Shader.globalMaximumLOD = 300;

            //waterObj.GetComponent<WaterSetup>().quality = WaterSetup.Quality.High;
            //waterObj2.GetComponent<WaterSetup>().quality = WaterSetup.Quality.High;
        }

        //if (GUI.Button(new Rect(60, 200, 200, 60), "Toggle Med Quality Shader!"))
        //{
        //    Shader.globalMaximumLOD = 250;
        //}

        if (GUI.Button(new Rect(60, 300, 200, 60), "Toggle Low Quality Shader!"))
        {
            Shader.globalMaximumLOD = 200;
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值