internal void SwitchToEditMode() { m_EditMode = EditMode.Starting; // Lock inspector ChangeInspectorLock(true); // Store current setup in hierarchy sceneSetup = EditorSceneManager.GetSceneManagerSetup(); // Load temp scene Scene scene = EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects); scene.name = "Avatar Configuration"; // Instantiate character m_GameObject = Instantiate(prefab) as GameObject; if (serializedAssetImporter.FindProperty("m_OptimizeGameObjects").boolValue) { AnimatorUtility.DeoptimizeTransformHierarchy(m_GameObject); } // First get all available modelBones Dictionary <Transform, bool> modelBones = AvatarSetupTool.GetModelBones(m_GameObject.transform, true, null); AvatarSetupTool.BoneWrapper[] humanBones = AvatarSetupTool.GetHumanBones(serializedAssetImporter, modelBones); m_ModelBones = AvatarSetupTool.GetModelBones(m_GameObject.transform, false, humanBones); Selection.activeObject = m_GameObject; // Unfold all nodes in hierarchy // TODO@MECANIM: Only expand actual bones foreach (SceneHierarchyWindow shw in Resources.FindObjectsOfTypeAll(typeof(SceneHierarchyWindow))) { shw.SetExpandedRecursive(m_GameObject.GetInstanceID(), true); } CreateEditor(); m_EditMode = EditMode.Editing; // Frame in scene view m_SceneStates = new List <SceneStateCache>(); foreach (SceneView s in SceneView.sceneViews) { m_SceneStates.Add(new SceneStateCache { state = new SceneView.SceneViewState(s.sceneViewState), view = s }); s.sceneViewState.showFlares = false; s.sceneViewState.showMaterialUpdate = false; s.sceneViewState.showFog = false; s.sceneViewState.showSkybox = false; s.sceneViewState.showImageEffects = false; s.sceneViewState.showParticleSystems = false; s.FrameSelected(); } }
internal void SwitchToEditMode() { this.m_EditMode = AvatarEditor.EditMode.Starting; this.ChangeInspectorLock(true); this.sceneSetup = EditorSceneManager.GetSceneManagerSetup(); EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects).name = "Avatar Configuration"; this.m_GameObject = UnityEngine.Object.Instantiate <GameObject>(this.prefab); if (base.serializedObject.FindProperty("m_OptimizeGameObjects").boolValue) { AnimatorUtility.DeoptimizeTransformHierarchy(this.m_GameObject); } Dictionary <Transform, bool> modelBones = AvatarSetupTool.GetModelBones(this.m_GameObject.transform, true, null); AvatarSetupTool.BoneWrapper[] humanBones = AvatarSetupTool.GetHumanBones(base.serializedObject, modelBones); this.m_ModelBones = AvatarSetupTool.GetModelBones(this.m_GameObject.transform, false, humanBones); Selection.activeObject = this.m_GameObject; UnityEngine.Object[] array = Resources.FindObjectsOfTypeAll(typeof(SceneHierarchyWindow)); for (int i = 0; i < array.Length; i++) { SceneHierarchyWindow sceneHierarchyWindow = (SceneHierarchyWindow)array[i]; sceneHierarchyWindow.SetExpandedRecursive(this.m_GameObject.GetInstanceID(), true); } this.CreateEditor(); this.m_EditMode = AvatarEditor.EditMode.Editing; this.m_SceneStates = new List <AvatarEditor.SceneStateCache>(); IEnumerator enumerator = SceneView.sceneViews.GetEnumerator(); try { while (enumerator.MoveNext()) { SceneView sceneView = (SceneView)enumerator.Current; this.m_SceneStates.Add(new AvatarEditor.SceneStateCache { state = new SceneView.SceneViewState(sceneView.sceneViewState), view = sceneView }); sceneView.sceneViewState.showFlares = false; sceneView.sceneViewState.showMaterialUpdate = false; sceneView.sceneViewState.showFog = false; sceneView.sceneViewState.showSkybox = false; sceneView.sceneViewState.showImageEffects = false; sceneView.sceneViewState.showParticleSystems = false; sceneView.FrameSelected(); } } finally { IDisposable disposable; if ((disposable = (enumerator as IDisposable)) != null) { disposable.Dispose(); } } }
internal void SwitchToEditMode() { this.m_EditMode = AvatarEditor.EditMode.Starting; this.ChangeInspectorLock(true); this.sceneSetup = EditorSceneManager.GetSceneManagerSetup(); EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects).name = "Avatar Configuration"; this.m_GameObject = UnityEngine.Object.Instantiate <GameObject>(this.prefab); if (base.serializedObject.FindProperty("m_OptimizeGameObjects").boolValue) { AnimatorUtility.DeoptimizeTransformHierarchy(this.m_GameObject); } Animator component = this.m_GameObject.GetComponent <Animator>(); if (component != null && component.runtimeAnimatorController == null) { AnimatorController animatorController = new AnimatorController(); animatorController.hideFlags = HideFlags.DontSave; animatorController.AddLayer("preview"); animatorController.layers[0].stateMachine.hideFlags = HideFlags.DontSave; component.runtimeAnimatorController = animatorController; } Dictionary <Transform, bool> modelBones = AvatarSetupTool.GetModelBones(this.m_GameObject.transform, true, null); AvatarSetupTool.BoneWrapper[] humanBones = AvatarSetupTool.GetHumanBones(base.serializedObject, modelBones); this.m_ModelBones = AvatarSetupTool.GetModelBones(this.m_GameObject.transform, false, humanBones); Selection.activeObject = this.m_GameObject; UnityEngine.Object[] array = Resources.FindObjectsOfTypeAll(typeof(SceneHierarchyWindow)); for (int i = 0; i < array.Length; i++) { SceneHierarchyWindow sceneHierarchyWindow = (SceneHierarchyWindow)array[i]; sceneHierarchyWindow.SetExpandedRecursive(this.m_GameObject.GetInstanceID(), true); } this.CreateEditor(); this.m_EditMode = AvatarEditor.EditMode.Editing; this.m_SceneStates = new List <AvatarEditor.SceneStateCache>(); foreach (SceneView sceneView in SceneView.sceneViews) { this.m_SceneStates.Add(new AvatarEditor.SceneStateCache { state = new SceneView.SceneViewState(sceneView.m_SceneViewState), view = sceneView }); sceneView.m_SceneViewState.showFlares = false; sceneView.m_SceneViewState.showMaterialUpdate = false; sceneView.m_SceneViewState.showFog = false; sceneView.m_SceneViewState.showSkybox = false; sceneView.m_SceneViewState.showImageEffects = false; sceneView.FrameSelected(); } }
private void OnEnable() { EditorApplication.update = (EditorApplication.CallbackFunction)Delegate.Combine(EditorApplication.update, new EditorApplication.CallbackFunction(this.Update)); this.m_SwitchToEditMode = false; if (this.m_EditMode == AvatarEditor.EditMode.Editing) { this.m_ModelBones = AvatarSetupTool.GetModelBones(this.m_GameObject.transform, false, null); this.editor.Enable(this); } else if (this.m_EditMode == AvatarEditor.EditMode.NotEditing) { this.editor = null; if (AvatarEditor.s_EditImmediatelyOnNextOpen) { this.m_CameFromImportSettings = true; AvatarEditor.s_EditImmediatelyOnNextOpen = false; } } }
void OnEnable() { EditorApplication.update += Update; m_SwitchToEditMode = false; if (m_EditMode == EditMode.Editing) { m_ModelBones = AvatarSetupTool.GetModelBones(m_GameObject.transform, false, null); editor.Enable(this); } else if (m_EditMode == EditMode.NotEditing) { editor = null; if (s_EditImmediatelyOnNextOpen) { m_CameFromImportSettings = true; s_EditImmediatelyOnNextOpen = false; } } }
internal void SwitchToEditMode() { // Lock inspector ChangeInspectorLock(true); string assetPath = AssetDatabase.GetAssetPath(target); AvatarConfigurationStage stage = AvatarConfigurationStage.CreateStage(assetPath, this); StageUtility.GoToStage(stage, true); m_EditMode = EditMode.Starting; // Instantiate character m_GameObject = stage.gameObject; if (serializedAssetImporter.FindProperty("m_OptimizeGameObjects").boolValue) { AnimatorUtility.DeoptimizeTransformHierarchy(m_GameObject); } SerializedProperty humanBoneArray = serializedAssetImporter.FindProperty("m_HumanDescription.m_Human"); // First get all available modelBones Dictionary <Transform, bool> modelBones = AvatarSetupTool.GetModelBones(m_GameObject.transform, true, null); AvatarSetupTool.BoneWrapper[] humanBones = AvatarSetupTool.GetHumanBones(humanBoneArray, modelBones); m_ModelBones = AvatarSetupTool.GetModelBones(m_GameObject.transform, false, humanBones); // Unfold all nodes in hierarchy // TODO@MECANIM: Only expand actual bones foreach (SceneHierarchyWindow shw in Resources.FindObjectsOfTypeAll(typeof(SceneHierarchyWindow))) { shw.SetExpandedRecursive(m_GameObject.GetInstanceID(), true); } CreateEditor(); m_EditMode = EditMode.Editing; }
private void OnEnable() { EditorApplication.update += new EditorApplication.CallbackFunction(this.Update); this.m_SwitchToEditMode = false; if (this.m_EditMode == AvatarEditor.EditMode.Editing) { this.m_ModelBones = AvatarSetupTool.GetModelBones(this.m_GameObject.transform, false, (AvatarSetupTool.BoneWrapper[])null); this.editor.Enable(this); } else { if (this.m_EditMode != AvatarEditor.EditMode.NotEditing) { return; } this.editor = (AvatarSubEditor)null; if (!AvatarEditor.s_EditImmediatelyOnNextOpen) { return; } this.m_CameFromImportSettings = true; AvatarEditor.s_EditImmediatelyOnNextOpen = false; } }