不知道場景里多少面,把腳本放進去運行一下即可,方便優化項目 代碼如下
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); } }