Exemple #1
0
    void OnEnable( )
    {
        m_rSmoothBindingGUI           = new Uni2DEditorSmoothBindingGUI(this.CurrentSprite);
        SceneView.onSceneGUIDelegate += m_rSmoothBindingGUI.OnSceneGUI;

        EditorApplication.delayCall += this.SelectionPolling;

        this.autoRepaintOnSceneChange = true;
    }
	void OnEnable( )
	{
		m_rSmoothBindingGUI = new Uni2DEditorSmoothBindingGUI( this.CurrentSprite );
		SceneView.onSceneGUIDelegate += m_rSmoothBindingGUI.OnSceneGUI;
		
		EditorApplication.delayCall += this.SelectionPolling;
		
		this.autoRepaintOnSceneChange = true;
	}
    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;
                    }

                    // Reset pose button
                    EditorGUI.BeginDisabledGroup(Uni2DEditorSmoothBindingGUI.CanUseAnimMode == false);
                    {
                        if (GUILayout.Button("Reset Pose", EditorStyles.miniButtonMid))
                        {
                            Uni2DEditorSmoothBindingGUI.ResetPose();
                        }
                    }

                    // 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( );
    }