Unity 获取场景所有的面数,顶点数
不知道场景里多少面,把脚本放进去运行一下即可,方便优化项目 代码如下
1.获取场景中全部模型的顶点数及面数
using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 获取场景的顶点数跟面数 ******************挂在场景上运行即可****************** /// </summary> public class CeShiMian : MonoBehaviour { public static int verts; public static int tris; // Use this for initialization void Start() { GetAllObjects(); } /// <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() { GUIStyle bb = new GUIStyle(); bb.normal.background = null; //这是设置背景填充的 bb.normal.textColor = new Color(1.0f, 0.5f, 0.0f); //设置字体颜色的 bb.fontSize = 40; //当然,这是字体大小 string vertsdisplay = verts.ToString("#,##0 verts-顶点数"); GUILayout.Label(vertsdisplay,bb); string trisdisplay = tris.ToString("#,##0 tris-面数"); GUILayout.Label(trisdisplay,bb); } }
2.获取当前模型的面数(你想要看哪个模型的面数就把脚本挂在哪个模型上)
using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 获取模型的顶点数跟面数 ******************挂在你想要查看的模型上运行即可****************** /// </summary> public class CeShiMian : MonoBehaviour { public int verts; public int tris; private List<GameObject> sadasd = new List<GameObject>(); // Use this for initialization void Start() { foreach (var item in this.GetComponentsInChildren<Transform>()) { sadasd.Add(item.gameObject); } GetAllObjects(); } void GetAllObjects() { foreach (GameObject obj in sadasd) { 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() { GUIStyle bb = new GUIStyle(); bb.normal.background = null; //这是设置背景填充的 bb.normal.textColor = new Color(1.0f, 0.5f, 0.0f); //设置字体颜色的 bb.fontSize = 40; //当然,这是字体大小 string vertsdisplay = verts.ToString("#,##0 verts-顶点数"); GUILayout.Label(vertsdisplay,bb); int aas = verts / 3; string trisdisplay = aas.ToString("#,##0 tris-面数"); GUILayout.Label(trisdisplay,bb); } }
动动你发财的小手,点个赞吧 ,感谢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
2019-12-23 unity UGUI跟随3D物体的坐标转换