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");
            }
        }
예제 #2
0
 void OnWizardCreate()
 {
     MeshAsset.BuildMeshAsset(target, meshAsset);
 }