using UnityEngine; using Game.Common; namespace Game { public class PagePlayerTouch : UIPageBase { private int _mCosoleNumMax = 20; public PagePlayerTouch() { } protected override void OnCreate() { CreateUI(false); View.m_ConsoleInput.onClick.Add(() => { View.m_ConsoleInput.RequestFocus(); }); SetCosoleVisible(false); } protected override void OnDestroy() { } protected override void OnOpen() { View.m_Console.RemoveChildrenToPool(); } protected override void OnClose() { } public override void Update() { var posScreen = Input.mousePosition; posScreen.y = Screen.height - posScreen.y; View.m_Cursor.SetPosition(posScreen.x, posScreen.y, posScreen.z); } protected override void OnInput(PPlayerInput context) { if (context.Action == EKeyActionType.Press) { if (View.m_ConsolePanel.visible) { if (context.Key == EFunctionKey.Menu) { View.m_ConsoleInput.text = ""; SetCosoleVisible(false); } if (context.Key == EFunctionKey.Enter) { if (View.m_ConsoleInput.focused) { OnCosoleSubmit(); } else { View.m_ConsoleInput.RequestFocus(); } } } else { if (context.Key == EFunctionKey.Enter) { SetCosoleVisible(true); View.m_ConsoleInput.RequestFocus(); } } } } private void OnCosoleSubmit() { var str = View.m_ConsoleInput.text; str = str.Replace("\n", ""); if (str.Length == 0) { return; } View.m_ConsoleInput.text = ""; var consoleInfo = View.m_Console.AddItemFromPool(); consoleInfo.asCom.GetChild("Text").text = str; while (View.m_Console.numItems > _mCosoleNumMax) { View.m_Console.RemoveChildToPoolAt(0); } View.m_Console.ScrollToView(View.m_Console.numItems - 1); } private void SetCosoleVisible(bool visible) { View.m_ConsolePanel.visible = visible; if (View.m_ConsolePanel.visible) { UIManager.Instance.Open(EuiPage.GmPanel); } else { UIManager.Instance.Close(EuiPage.GmPanel); } } } }