draw() public method

public draw ( ) : void
return void
Exemplo n.º 1
0
    void OnGUI()
    {
        GUI.DrawTexture(new Rect(0, 0, Screen.width, Screen.height), background_texture);

        // this must come before the TextEditor line below
        halfbook.draw();

        GUI.SetNextControlName("EditableCode");
        stateObj = GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl) as TextEditor;
        //GUI.FocusControl("EditableCode");

        // Give the appropriate text area keyboard control -> this prevents us from moving the player while in the IDE
//      if (Event.current.rawType == EventType.MouseDown) {
//          Debug.Log("caught mousedown event");
//          if (editorPanel.isWithin(Event.current.mousePosition))
//              GUI.FocusControl("EditableCode");
//          else
//              GUI.FocusControl("ReferenceCode");
//          Debug.Log("focus control: "+GUI.GetNameOfFocusedControl());
//      }



        if (shouldPopup)
        {
//      GUI.DrawTexture(editorPanel.getRect(),left_panel_background);
//      //GUI.DrawTexture(new Rect(0,0,Screen.width*3/4,Screen.height),left_panel_background);
//      GUILayout.BeginArea(new Rect(120,40,Screen.width*3/4,Screen.height));
//
//      scroll_position = GUILayout.BeginScrollView (scroll_position, GUILayout.Width(Screen.width*3/4-200), GUILayout.Height(Screen.height-60 )); // Should vary the size of the last rect by how much text we have??
//
//      GUILayout.EndScrollView ();
//      GUILayout.EndArea();

            editorPanel.draw(false);

            int      boxWidth  = 300;
            int      boxHeight = 75;
            GUIStyle style     = GUI.skin.box;
            style.alignment = TextAnchor.UpperCenter;
            GUI.Box(new Rect(Screen.width / 2 - boxWidth / 2, Screen.height / 2 - boxHeight / 2, boxWidth, boxHeight), "Are you sure you want to delete your script?", style);

            if (GUI.Button(new Rect(Screen.width / 2 - 60, Screen.height / 2 + box_height / 2 - 20, 50, 30), "Yes"))
            {
                no_edit      = false;
                shouldRemove = true;
                shouldPopup  = false;
            }

            if (GUI.Button(new Rect(Screen.width / 2 + 30, Screen.height / 2 + box_height / 2 - 20, 50, 30), "No"))
            {
                no_edit     = false;
                shouldPopup = false;
            }
        }
        else
        {
            //leftPanel();
            editorPanel.draw(true);
        }

        if (shouldRemove)
        {
            removeScript();
        }

        //rightPanel();
        errorPanel.draw();
        buttonPanel.draw();

        if (GUI.GetNameOfFocusedControl() == "EditableCode")
        {
            adjustScroll();

            catchTabs();

            detectKeyboardActivity();

            logKeyboardActivity();
        }

        // check if the spellbook (outside of the code region) was clicked
        //      if so, we want to make it full screen
        if (Event.current.type == EventType.MouseDown)
        {
            Vector2 pos = Event.current.mousePosition;
            if (halfbook.getBookRect().Contains(pos) && !halfbook.getTextRect().Contains(pos) && !errorPanel.getErrorRect().Contains(pos) && !editorPanel.getEditorRect().Contains(pos))
            {
                spellbook.setNoCopyDisplay(true);
                spellbook.show(GameObject.Find("IDE"));
            }
        }

        // make it so that we can't click through to the game
        // NOTE: This must appear LAST in the OnGUI. Otherwise, other buttons won't work!
        GUI.Button(new Rect(0, 0, Screen.width, Screen.height), "", empty_style);
    }