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];
}
}
}
}