一个简单的游戏性能测试用例
作为开发人员,我们经常会遇到美术给的模型面数过多等情况。为了避免返工,可以先做一个简单的游戏性能测试用例。
具体功能如下:
1,生成测试盒子;2,得到游戏中的点面数;3,FPS实时监测
检测点面数的代码如下:
using UnityEngine;
using System.Collections;/// <summary>
/// 计算场景中的顶点与三角面
/// </summary>
public class CalculateVertsAndTris : MonoBehaviour
{public float f_UpdateInterval = 0.5F; //刷新间隔private float f_LastInterval; //上一次刷新的时间间隔public static int verts;public static int tris;// Use this for initializationvoid Start(){f_LastInterval = Time.realtimeSinceStartup;}/// <summary>/// 得到场景中所有的GameObject/// </summary>void GetAllObjects(){verts = 0;tris = 0;GameObject[] ob = FindObjectsOfType(typeof(GameObject)) as GameObject[];foreach (GameObject obj in ob){GetAllVertsAndTris(obj);}}//得到三角面和顶点数void GetAllVertsAndTris(GameObject obj){Component[] filters;filters = obj.GetComponentsInChildren<MeshFilter>();foreach (MeshFilter f in filters){tris += f.sharedMesh.triangles.Length / 3;verts += f.sharedMesh.vertexCount;}}void OnGUI(){string vertsdisplay = verts.ToString("#,##0 verts");GUIStyle fontStyle = new GUIStyle();fontStyle.normal.background = null; //设置背景填充 fontStyle.normal.textColor = GUI.color; //设置字体颜色 fontStyle.fontSize = 80; //字体大小 GUI.Label(new Rect(0, 0, 200, 200), "顶点数:" + vertsdisplay, fontStyle);//GUILayout.Label(vertsdisplay);string trisdisplay = tris.ToString("#,##0 tris");GUIStyle fontStyle2 = new GUIStyle();fontStyle2.normal.background = null; //设置背景填充 fontStyle2.normal.textColor = GUI.color; //设置字体颜色 fontStyle2.fontSize = 80; //字体大小 GUI.Label(new Rect(0, 200, 200, 200), "三角面数:" + trisdisplay, fontStyle2);//GUILayout.Label(trisdisplay);}// Update is called once per framevoid Update(){if (Time.realtimeSinceStartup > f_LastInterval + f_UpdateInterval){f_LastInterval = Time.realtimeSinceStartup;GetAllObjects();}}
}
这里引用了这篇博客的代码与思路。
FPS检测工具:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class FPSUtils : MonoBehaviour{public static float f_Fps;public float f_UpdateInterval = 0.5f; //每个0.5秒刷新一次 private float f_LastInterval; //游戏时间 private int i_Frames = 0;//帧数 void Awake(){//Application.targetFrameRate = 30;Application.targetFrameRate = 60;//Time.timeScale=0.2f;}void OnGUI(){if (f_Fps > 50){GUI.color = new Color(0, 1, 0);}else if (f_Fps > 40){GUI.color = new Color(1, 1, 0);}else{GUI.color = new Color(1.0f, 0, 0);}GUIStyle fontStyle = new GUIStyle();fontStyle.normal.background = null; //设置背景填充 fontStyle.normal.textColor = GUI.color; //设置字体颜色 fontStyle.fontSize = 80; //字体大小 GUI.Label(new Rect(0, 600, 200, 200), "FPS:" + f_Fps.ToString("f2"),fontStyle);}void Update(){++i_Frames;if (Time.realtimeSinceStartup > f_LastInterval + f_UpdateInterval){f_Fps = i_Frames / (Time.realtimeSinceStartup - f_LastInterval);i_Frames = 0;f_LastInterval = Time.realtimeSinceStartup;}}
}
简单的AI逻辑与生成为自己写的,测试结果如下:
项目工程已上传到下载链接里面去了。
FPS50左右的真机测试结果:
低端机:29万顶点数,15万三角面
高端机:100万顶点数,50万三角面
补充:
如果用球进行测试的话,算出来的结果不太一样。我们以顶点数为准,这个最好取下中间值。
我们游戏用的是37万顶点,极限值在80万。
一个简单的游戏性能测试用例相关推荐
- rust如何在木板上上传图片_通过编写一个简单的游戏来学习 Rust | Linux 中国
导读:你可以尝试以多种语言编程一个简单的游戏来开始编程之路. 本文字数:4068,阅读时长大约: 5分钟 https://linux.cn/article-12979-1.html 作者:Moshe ...
- python编程制作接金币游戏_pygame学习笔记(6):完成一个简单的游戏
学了这么长时间的Pygame,一直想写个游戏实战一下.看起来很简单的游戏,写其来怎么这么难.最初想写个俄罗斯方块,想了很长时间如何实现,想来想去,也没写出来,于是干脆下载别人的代码来读.后来,要想写一 ...
- 本文将引导你使用XNA Game Studio Express一步一步地创建一个简单的游戏
本文将引导你使用XNA Game Studio Express一步一步地创建一个简单的游戏 第1步: 安装软件 第2步: 创建新项目 第3步: 查看代码 第4步: 加入一个精灵 第5步: 使精灵可以移 ...
- 如何制作一个简单的游戏 Cocos2d x 2 0 4
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...
- 如何制作一个简单的游戏 Cocos2d-x 2.0.4
本文实践自 Ray Wenderlich 的文章< How To Make A Simple iPhone Game with Cocos2D 2.X Tutorial>,文中使用Coco ...
- 用python 编写一个简单的游戏
This blog will memory my work and process with the interesting skill. 用python 编写一个简单的游戏 这是一个非常简单的游戏, ...
- 游戏编程笔记-起步(一)一个简单的游戏-贪吃蛇
二 游戏编程起步 1.一个简单的游戏-贪吃蛇 1.贪吃蛇游戏剖析 1)游戏的目标.在不被撞死的前提下,吃掉奖子增加自己的长度,来完成升级. 2)游戏中的物体.蛇,墙壁,奖子. 3)动作.蛇移动,蛇吃奖 ...
- 一个简单的游戏源代码
一个简单的游戏源代码 作者:陈跃峰 出自: http://blog.csdn.net/mailbomb 实现一个简单的翻牌游戏,每次最多翻开两个数字,如果数字相同则消失,否则两个数字不显示,可以继续游 ...
- 用python做一个简单的游戏,用python写一个小游戏
大家好,本文将围绕如何用python做一个简单的小游戏展开说明,python编写的入门简单小游戏是一个很多人都想弄明白的事情,想搞清楚用python做一个简单的游戏需要先了解以下几个事情. 1.Pyt ...
最新文章
- 澎思科技成立新加坡研究院,将与多家机构合作研发自动驾驶等项目
- php 为什么定义常量,php-将预定义常量定义为什么
- python两条曲线图片相似度_Python比较两个图片相似度的方法
- code1167 树网的核
- 外设驱动库开发笔记22:ADXL345三轴数字加速度计驱动
- Quartz Job
- 10的几次方 用计算机计算公式,在excel中如何计算10的几次方呢
- 运放放大倍数计算公式_运算放大器基本电路大全(转)
- 知群产品经理必修TOP班-31期学习笔记
- 百度url提交入口 百度网站收录提交入口网址
- vue中使用loadsh实现防抖功能及处理各种数据
- 美容院前台收银软件用什么好?
- php加密的是什么,看看下面这个php代码是使用什么加密的?
- python实现RGB转换HSV
- 组数(【问题描述】输入一行字符串(设字符数不大于80),提取该字符串中的数字字符并组成一个整数,输出该整数及其两倍的值。)
- leetcode剑指offer4
- K65 Flex_CAN 匹配过程
- 单片机烧录不进去怎么办?通用类!
- 开源众包and公安行业的联姻。大项目,久合作。只要你的技术符合。金矿等着你!...
- JS数据库:手机处理器列表