unity Tab鍵實現切換輸入框功能


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
/// <summary>
/// ************************************本腳本掛在輸入框上即可*********************************************
/// </summary>
public class Tabcoll : MonoBehaviour,ISelectHandler,IDeselectHandler {
public void OnDeselect(BaseEventData eventData)
{
_instacnet = false;
}

public void OnSelect(BaseEventData eventData)
{
_instacnet = true;
}
EventSystem system;
private bool _instacnet = false;
// Use this for initialization
void Start () {
system = EventSystem.current;
}

// Update is called once per frame
void Update () {
if (Input .GetKeyDown (KeyCode.Tab )&&_instacnet )
{
Selectable _Nect = null;
if (Input .GetKey (KeyCode.LeftShift )||Input.GetKey (KeyCode.RightShift ))
{
_Nect = system.currentSelectedGameObject.GetComponent<Selectable>().FindSelectableOnUp();
if (_Nect == null) _Nect = system.lastSelectedGameObject.GetComponent<Selectable>();

}
else
{
_Nect = system.currentSelectedGameObject.GetComponent<Selectable>().FindSelectableOnDown();
if (_Nect == null) _Nect = system.firstSelectedGameObject.GetComponent<Selectable>();
}
if (_Nect!=null)
{
InputField inputField = _Nect.GetComponent<InputField>();
system.SetSelectedGameObject(_Nect.gameObject, new BaseEventData(system));
}
else
{
Debug.LogError("沒有下一個組件");
}
}
}

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM