private void UpdateInstance(Transform transform, bool root) { if (EditorUtil.IsPrefabOnProject(transform.gameObject)) { return; } UModeler modeler = transform.gameObject.GetComponent <UModeler>(); if (!root || modeler == null) { for (int i = 0; i < transform.childCount; ++i) { Transform childTM = transform.GetChild(i); UModeler childModeler = childTM.GetComponent <UModeler>(); if (childModeler != null) { if (childModeler.CheckMesh()) { EditorUtil.RefreshModeler(childTM); childModeler.UpdateMeshContainer(); } } UpdateInstance(childTM, /*root*/ false); } } }
private static void OnMeshBuilding(UModeler modeler, int shelf) { if (shelf == 0) { UModelerEditor.DisconnectPrefabMeshLink(modeler); } }
public override void OnInspectorGUI() { base.OnInspectorGUI(); MeshFilter mf = (MeshFilter)target; UModeler modeler = mf.GetComponent <UModeler>(); if (modeler != null && !EditorUtil.IsPrefabOnProject(modeler.gameObject)) { foldedOut = EditorUtil.Foldout(foldedOut, "UModeler .asset"); Mesh mesh = modeler.renderableMeshFilter != null ? modeler.renderableMeshFilter.sharedMesh : null; if (foldedOut && mesh != null) { if (modeler.IsAssetPathValid()) { GUILayout.Label("File name : " + modeler.AssetFileName); } else { GUILayout.Label(".Asset file of this mesh doesn't exist yet."); } GUI.changed = false; GUILayout.BeginHorizontal(); if (GUILayout.Button("Save")) { string path = modeler.IsAssetPathValid() ? modeler.assetPath : SystemUtil.MeshAssetFolder + "/" + mesh.name + ".asset"; if (SystemUtil.SaveMeshAsset(modeler, path)) { EditorUtility.SetDirty(mf); } } else if (GUILayout.Button("Save As")) { if (SystemUtil.SaveMeshAsset(modeler)) { EditorUtility.SetDirty(mf); } } else { GUILayout.EndHorizontal(); } if (GUI.changed) { if (modeler.IsAssetPathValid()) { modeler.renderableMeshFilter.sharedMesh.name = modeler.MeshName; EditorMode.commentaryViewer.AddTitle("The mesh has been saved as " + modeler.AssetFileName); } } } } }
static void OnMeshBuilt(UModeler modeler, int shelf) { UModelerEditor.OnChanged(); if (shelf == 0) { if (EditorUtil.HasStaticLightmap(modeler)) { EditorUtil.SetLightmap(modeler, false); EditorUtil.SetLightmap(modeler, true); } } }
static private void UpdateInstance(GameObject instance) { UModeler modeler = instance.GetComponent <UModeler>(); if (modeler != null) { using (new ActiveModelerHolder(modeler)) { modeler.Build(0, true /*updateToGraphicsAPIImmediately*/); } } for (int i = 0; i < instance.transform.childCount; ++i) { UpdateInstance(instance.transform.GetChild(i).gameObject); } }
static void OnMeshBuilt(UModeler modeler, int shelf) { UModelerEditor.OnChanged(); if (shelf == 0) { modeler.editableMesh.IsBuilt = true; if (EditorUtil.HasStaticLightmap(modeler)) { EditorUtil.GenerateUV2(modeler); EditorUtil.SetLightmap(modeler, false); EditorUtil.SetLightmap(modeler, true); } } }
private static void OnMeshBuilding(UModeler modeler, int shelf) { if (shelf == 0) { UModelerEditor.DisconnectPrefabMeshLink(modeler); } else if (shelf == 1) { using (new ShelfHolder(modeler.editableMesh)) { modeler.editableMesh.shelf = 1; var polygonList = modeler.editableMesh.GetAllPolygons(); if (UMContext.activeModeler.autoHotspotLayout) { HotspotLayoutTool.HotspotTexturing(polygonList, true, false); modeler.editableMesh.uvIslandManager.RemoveAllEmpty(); } } } }
private void UpdateInstance(Transform transform, bool root) { UModeler modeler = transform.gameObject.GetComponent <UModeler>(); if (!root || modeler == null) { for (int i = 0; i < transform.childCount; ++i) { Transform childTM = transform.GetChild(i); UModeler childModeler = childTM.GetComponent <UModeler>(); if (childModeler != null) { if (childModeler.instanceID != childModeler.GetInstanceID()) { EditorUtil.RefreshModeler(childTM); childModeler.instanceID = childModeler.GetInstanceID(); } } UpdateInstance(childTM, false /*root*/); } } }
private static void OnSceneLoading(string path, OpenSceneMode mode) { UModeler.ResetMeshContainer(); }
static void OnMeshBuilt(UModeler modeler, int shelf) { UModelerEditor.OnChanged(); EditorUtil.EnableHighlight(false, modeler); }