1. 程式人生 > >unity 網格Mesh佔用記憶體公式

unity 網格Mesh佔用記憶體公式

    [MenuItem("Assets/GetVerctorNum")]
    static void GetVerctorNum() {
        Object[] selectedAsset = Selection.GetFiltered(typeof(Object), SelectionMode.DeepAssets);
        int count = 0;
        int meshCount = 0;
        int triCount = 0;
        for (int i = 0; i < selectedAsset.Length; i++) {
            GameObject obj = selectedAsset[i] as GameObject;
          
            MeshFilter[] filters = obj.GetComponentsInChildren<MeshFilter>(true);
            if(filters != null){
                for (int j = 0; j < filters.Length; j++) {
                    MeshFilter f = filters[j];
                    count += f.sharedMesh.vertexCount;
                    triCount += f.sharedMesh.triangles.Length / 3;
                    meshCount++;
                }
            }
        }
        Debug.LogWarning("總共Mesh=" + meshCount + "   總共頂點=" + count  + "   總共三角形="+triCount);
    }