protected void OnEditModeStart(Editor editor, UnityEditorInternal.EditMode.SceneViewEditMode mode) { if ((mode == UnityEditorInternal.EditMode.SceneViewEditMode.Collider) && (editor == this)) { this.OnEditStart(); } }
//从一个Animator中获取所有的Animation void FindAllAniInControl(UnityEditorInternal.AnimatorController control, List<AnimationClip> list) { for (int i = 0; i < control.layerCount; i++) { var layer = control.GetLayer(i); FindAllAniInControl(layer.stateMachine, list); } }
void FindAllAniInControl(UnityEditorInternal.StateMachine machine, List<AnimationClip> list) { for (int i = 0; i < machine.stateCount; i++) { var m = machine.GetState(i).GetMotion(); if (list.Contains(m as AnimationClip) == false) { list.Add(m as AnimationClip); } } for (int i = 0; i < machine.stateMachineCount; i++) { var m = machine.GetStateMachine(i); FindAllAniInControl(m, list); } }
private void OnAddAnimation( UnityEditorInternal.ReorderableList list ) { AnimationClip selectedAnimation = null; if( list.index >= 0 && list.index < list.list.Count ) { selectedAnimation = list.list[list.index] as AnimationClip; } if( selectedAnimation != null ) { var selectedPath = AssetDatabase.GetAssetPath( selectedAnimation ); var newAnimation = Object.Instantiate( selectedAnimation ); AssetDatabase.AddObjectToAsset( newAnimation, target ); AssetDatabase.SaveAssets(); AssetDatabase.ImportAsset( selectedPath ); } else { var clip = AnimatorController.AllocateAnimatorClip( "New Clip" ); AssetDatabase.AddObjectToAsset( clip, target ); AssetDatabase.SaveAssets(); } }
private void OnRemoveAnimation( UnityEditorInternal.ReorderableList list ) { AnimationClip animation = list.list[list.index] as AnimationClip; if( animation != null ) { Object.DestroyImmediate( animation, true ); AssetDatabase.SaveAssets(); } }
private void OnAnimationListChanged( UnityEditorInternal.ReorderableList list ) { LoadAnimationList(); }
public Transition AddAnyStateTransition(UnityEditorInternal.State dst) { return null; }
public Transition[] GetTransitionsFromState(UnityEditorInternal.State srcState) { return null; }
private bool IsReflectionProbeEditMode(UnityEditorInternal.EditMode.SceneViewEditMode editMode) { if (editMode != UnityEditorInternal.EditMode.SceneViewEditMode.ReflectionProbeBox) return editMode == UnityEditorInternal.EditMode.SceneViewEditMode.ReflectionProbeOrigin; return true; }
private bool IsReflectionProbeEditMode(UnityEditorInternal.EditMode.SceneViewEditMode editMode) { return ((editMode == UnityEditorInternal.EditMode.SceneViewEditMode.ReflectionProbeBox) || (editMode == UnityEditorInternal.EditMode.SceneViewEditMode.ReflectionProbeOrigin)); }
static ControllerParameterType ConvertParameterType(UnityEditorInternal.AnimatorControllerParameterType paramType) { switch(paramType) { case UnityEditorInternal.AnimatorControllerParameterType.Bool: return ControllerParameterType.Bool; case UnityEditorInternal.AnimatorControllerParameterType.Float: return ControllerParameterType.Float; #if UNITY_4_2 case UnityEditorInternal.AnimatorControllerameterType.Vector: return ControllerParameterType.Vector; #else case UnityEditorInternal.AnimatorControllerParameterType.Trigger: return ControllerParameterType.Trigger; #endif case UnityEditorInternal.AnimatorControllerParameterType.Int: return ControllerParameterType.Int; } throw new System.Exception("Unknown type"); }
static ControllerStateMachine ConverStateMachine(UnityEditorInternal.StateMachine stateMachine, ControllerState[] states) { return new ControllerStateMachine() { name = stateMachine.name, hash = Animator.StringToHash(stateMachine.name), states = states.Where(i => stateMachine.EnumerateStates().Any(j => j.uniqueNameHash==i.uniqueNameHash)).ToArray(), subStateMachines = Enumerable.Range(0, stateMachine.stateMachineCount).Select(i => ConverStateMachine(stateMachine.GetStateMachine(i),states)).ToArray() }; }
protected void OnEditModeStart(Editor editor, UnityEditorInternal.EditMode.SceneViewEditMode mode) { if (mode != UnityEditorInternal.EditMode.SceneViewEditMode.Collider || !((Object) editor == (Object) this)) return; this.OnEditStart(); }
protected void HandleOnElementReordered(UnityEditorInternal.ReorderableList p_list) { FillSelectedWithList(p_list.list, (m_windowInformation != null && m_windowInformation.PickSelectedObjects)); }
protected void HandleOnRemove(UnityEditorInternal.ReorderableList p_list) { List<AOTKeyValuePair<int, GameObject>> v_clonedList = p_list.list is List<AOTKeyValuePair<int, GameObject>> ? (p_list.list as List<AOTKeyValuePair<int, GameObject>>).CloneList() : new List<AOTKeyValuePair<int, GameObject>>(); try { int v_index = p_list.index >=0 && p_list.index < v_clonedList.Count? p_list.index : v_clonedList.Count -1; v_clonedList.RemoveAt(v_index); } catch{} FillSelectedWithList(v_clonedList, false, true); _needRecreateList = true; }
protected void HandleOnAdd(UnityEditorInternal.ReorderableList p_list) { List<AOTKeyValuePair<int, GameObject>> v_clonedList = p_list.list is List<AOTKeyValuePair<int, GameObject>> ? (p_list.list as List<AOTKeyValuePair<int, GameObject>>).CloneList() : new List<AOTKeyValuePair<int, GameObject>>(); v_clonedList.Add(new AOTKeyValuePair<int, GameObject>()); FillSelectedWithList(v_clonedList, false, true); _needRecreateList = true; }