public static GameConsoleInterface CreateInterface(GameObject target, TextMeshProUGUI text, TMP_InputField input, ScrollRect scroll) { GameConsoleInterface console = target.AddComponent <GameConsoleInterface>(); console.logText = text; console.inputField = input; console.scrollRect = scroll; return(console); }
public override void OnInspectorGUI() { GameConsoleInterface script = (GameConsoleInterface)target; qGUIInternalUtility.DrawqASICBanner(); DrawContents(); EditorGUILayout.Space(); if (GUILayout.Button("Refresh")) { script.RefreshLogs(); } }
static void CreateConsole() { GameObject consoleObject = new GameObject("Game console"); GameObject canvasObject = CreateCanvas(consoleObject.transform, "Canvas", 10).gameObject; CreateImageObject(canvasObject.transform, new Color(0f, 0f, 0f, 0.5f), "Fade"); RectTransform body = CreateImageObject(canvasObject.transform, new Color(0f, 0f, 0f), "Body").rectTransform; body.offsetMin = new Vector2(100f, 100f); body.offsetMax = new Vector2(-100f, -100f); TextMeshProUGUI text = CreateTextObject(null, "Text", 40); text.gameObject.AddComponent <ContentSizeFitter>().verticalFit = ContentSizeFitter.FitMode.PreferredSize; ScrollRect scroll = CreateScroll(body, text.rectTransform); RectTransform scrollTrans = scroll.GetComponent <RectTransform>(); text.rectTransform.offsetMin = new Vector2(10f, 0f); text.rectTransform.offsetMax = new Vector2(-10f, 0f); scrollTrans.offsetMin = new Vector2(scrollTrans.offsetMin.x, 100f); TMP_InputField field = CreateInputField(body, Color.white); RectTransform fieldTrans = field.GetComponent <RectTransform>(); SetAnchors(fieldTrans, new Vector2(0f, 0f), new Vector2(1f, 0f)); fieldTrans.sizeDelta = new Vector2(fieldTrans.sizeDelta.x, 100f); fieldTrans.anchoredPosition = new Vector2(fieldTrans.anchoredPosition.x, 50); CreateToggler(consoleObject, "console", canvasObject).key = #if ENABLE_INPUT_SYSTEM UnityEngine.InputSystem.Key.Backquote; #else KeyCode.BackQuote; #endif GameConsoleInterface consoleScript = CreateInterface(consoleObject, text, field, scroll); field.onValueChanged.AddListener(_ => consoleScript.DiscardPreviousCommand()); canvasObject.SetActive(false); CheckForEventSystem(); FinishObject(consoleObject); }