public void Reset(Uni2DSprite a_rSprite, bool a_bKeepCurrentModeIfPossible = false) { m_rLastAddedBone = null; m_rBoneChainOrigin = null; Uni2DEditorSmoothBindingGUI.activeBone = null; m_f2MouseGUIOffset = Vector2.zero; ms_eEditorTool = BoneEditorTool.Select; BoneEditMode eSavedEditMode = Uni2DEditorSmoothBindingGUI.CurrentBoneEditMode; Uni2DEditorSmoothBindingGUI.CurrentBoneEditMode = BoneEditMode.None; ms_rSprite = a_rSprite; if (a_bKeepCurrentModeIfPossible) { Uni2DEditorSmoothBindingGUI.CurrentBoneEditMode = eSavedEditMode; } }
void OnGUI( ) { BoneEditMode eCurrentMode = Uni2DEditorSmoothBindingGUI.CurrentBoneEditMode; bool bPosingMode = eCurrentMode == BoneEditMode.Posing; bool bAnimMode = eCurrentMode == BoneEditMode.Anim; string oHelpMessage = null; MessageType eHelpMessageType = MessageType.Info; switch (eCurrentMode) { default: case BoneEditMode.None: { Uni2DSprite rSprite = this.CurrentSprite; if (rSprite != null && rSprite.SpriteSettings.renderMesh != Uni2DSprite.SpriteRenderMesh.Grid) { oHelpMessage = mc_oNoneModeHelpAndAdvice; eHelpMessageType = MessageType.Warning; } else { oHelpMessage = mc_oNoneModeHelp; } } break; case BoneEditMode.Posing: oHelpMessage = mc_oPosingModeHelp; break; case BoneEditMode.Anim: oHelpMessage = mc_oAnimModeHelp; break; } m_f2ScrollPos = EditorGUILayout.BeginScrollView(m_f2ScrollPos, false, false); { EditorGUILayout.BeginVertical( ); { EditorGUILayout.BeginHorizontal( ); { // Posing button EditorGUI.BeginChangeCheck( ); { EditorGUI.BeginDisabledGroup(Uni2DEditorSmoothBindingGUI.CanUsePosingMode == false); { bPosingMode = GUILayout.Toggle(bPosingMode, "Posing", EditorStyles.miniButtonLeft); } EditorGUI.EndDisabledGroup( ); } if (EditorGUI.EndChangeCheck( )) { Uni2DEditorSmoothBindingGUI.CurrentBoneEditMode = bPosingMode ? BoneEditMode.Posing : BoneEditMode.None; } // Anim button EditorGUI.BeginChangeCheck( ); { EditorGUI.BeginDisabledGroup(Uni2DEditorSmoothBindingGUI.CanUseAnimMode == false); { bAnimMode = GUILayout.Toggle(bAnimMode, "Anim", EditorStyles.miniButtonRight); } EditorGUI.EndDisabledGroup( ); } if (EditorGUI.EndChangeCheck( )) { Uni2DEditorSmoothBindingGUI.CurrentBoneEditMode = bAnimMode ? BoneEditMode.Anim : BoneEditMode.None; } } EditorGUILayout.EndHorizontal( ); EditorGUILayout.Space( ); if (GUILayout.Button(ms_bHideHelp ? "Show Help" : "Hide Help", EditorStyles.miniButton)) { ms_bHideHelp = !ms_bHideHelp; } if (ms_bHideHelp == false) { EditorGUILayout.HelpBox(oHelpMessage, eHelpMessageType); } } EditorGUILayout.EndVertical( ); } EditorGUILayout.EndScrollView( ); }