loudixvmuniu/Assets/_Scripts/Framework/Utilities/InputFieldController.cs
2025-01-02 12:15:45 +08:00

63 lines
1.9 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/********************************************************************************
*Create By CG
*Function 点击Tap切换文本输入框
*********************************************************************************/
namespace CG.UTility
{
public class InputFieldController : MonoBehaviour, ISelectHandler, IDeselectHandler
{
private bool isSelect = false;
private EventSystem system;
// Use this for initialization
void Start()
{
system = EventSystem.current;
}
private void GetTabDown()
{
if (Input.GetKeyDown(KeyCode.Tab) && isSelect)
{
//下一个要切换到的
Selectable next = null;
//现在正处在能够处理事件的
Selectable now = system.currentSelectedGameObject.GetComponent<Selectable>();
//找到现在的下一个
next = now.FindSelectableOnDown();
if (next == null)
{
print("没有下一个了");
}
//让下一个能够处理事件
system.SetSelectedGameObject(next.gameObject);
}
}
// Update is called once per frame
void Update()
{
GetTabDown();
}
/// <summary>
/// 实现ISelectHandler接口
/// </summary>
/// <param name="eventData"></param>
public void OnSelect(BaseEventData eventData)
{
isSelect = true;
}
/// <summary>
/// 实现IDeselectHandler接口
/// </summary>
/// <param name="eventData"></param>
public void OnDeselect(BaseEventData eventData)
{
isSelect = false;
}
}
}