Unity3D 優化 6 ( 刪除 FBX 的 默認材質,減少加載時間)

1. 當FBX沒有勾選 Import Materials 選項的時候,Unity3D 會自動添加 Default Diffuse 材質球,這個材質球使用的是Standard 。

2. 當加載這個FBX相關的Prefab的時候,會導致Shader.Parse(Standard)消耗,這個消耗其實是沒有什麼必要的,因爲Prefab裏面使用了真正的Material,而且Shader.Parse(Standard)消耗還是十分大的,所以,可以在 AssetPostprocessor 中統一把FBX的Materials.Count設置爲0.


private void HandleDeleteFbxMaterials(GameObject model)
    {
        ModelImporter modelImp = (ModelImporter)assetImporter;
        string path = assetPath.ToLower();
        if (path.EndsWith(".fbx"))
        {
            Renderer[] renderComs = model.GetComponentsInChildren<Renderer>();
            for (int i = 0; i < renderComs.Length; i++)
            {
                renderComs[i].sharedMaterial = null;

                if (renderComs[i].sharedMaterials != null)
                {
                    renderComs[i].sharedMaterials = new Material[0];
                }
            }
        }
        
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章