public static void BuildMeshAssetFromPrefab(MenuCommand menuCommand) { Object activeObject = Selection.activeObject; if (activeObject.GetType() != typeof(GameObject)) { Debug.LogWarning("select asset is not Prefab"); return; } bool buildOK = false; GameObject prefab = (GameObject)activeObject; if (prefab.GetComponent <LODGroup>() == null) { buildOK = true; } if (prefab.GetComponent <MeshFilter>() == null || prefab.GetComponent <MeshRenderer>() == null) { buildOK = true; } if (buildOK) { MeshAsset meshAsset = ScriptableObject.CreateInstance <MeshAsset>(); meshAsset.target = prefab; MeshAsset.BuildMeshAsset(prefab, meshAsset); CreateMeshAsset meshAssetFactory = ScriptableObject.CreateInstance <CreateMeshAsset>(); meshAssetFactory.meshAsset = meshAsset; ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, meshAssetFactory, "SM_" + prefab.name + ".asset", null, null); } else { Debug.LogWarning("select prefab doesn't have LODGroup or MeshRenderer"); } }
void OnWizardCreate() { MeshAsset.BuildMeshAsset(target, meshAsset); }