using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; using BITKit; using BITKit.UX; using System.Linq; using UnityEngine.InputSystem; using Cysharp.Threading.Tasks; using System.Text; using System.IO; namespace BITKit.Console { public class BITConsole : UXPanel { [BITCommand] public static void Clear() { singleton.outputString.Clear(); singleton.text.text = string.Empty; } static BITConsole singleton; const string textFieldName = "TextField"; const string commandListViewName = "commands-listview"; const string textName = "Text"; const string scrollViewName = "context-scrollview"; public InputActionReference inputAction; public InputActionReference nextOrPreviousAction; public int logLineLimit = 64; private ListView commandListView; private TextField textField; private Label text; private ScrollView scrollView; private bool isActived; private List outputString = new(); private void Awake() { inputAction.action.Enable(); nextOrPreviousAction.action.Enable(); singleton = this; var visualElement = document.rootVisualElement; textField = visualElement.Q(textFieldName); commandListView = visualElement.Q(commandListViewName); text = visualElement.Q