Страница 1 из 1

Переключение с помощью tab между inputfield

СообщениеДобавлено: 01 мар 2017, 12:36
siriusspark
Привет, народ.

Такой вопрос - у меня есть форма авторизации построенная с помощью canvas. Все работает, все красиво выглядит, он вдруг обнаружилась одна деталь - невозможность переключиться из одного поля ввода в другое с помощью клавиши Tab. Если с инпутами из стандартного GUI таки проблем нет, то тут вот обнаружилось.

Соответственно вопрос - есть ли решение данной проблемы? В инете поискал, нашел какие-то варианты вроде:

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
 
public class InputNavigator : MonoBehaviour
{
    EventSystem system;
 
    void Start()
    {
        system = EventSystem.current;// EventSystemManager.currentSystem;
     
    }
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Tab))
        {
            Selectable next = system.currentSelectedGameObject.GetComponent<Selectable>().FindSelectableOnDown();
         
            if (next != null)
            {
             
                InputField inputfield = next.GetComponent<InputField>();
                if (inputfield != null)
                    inputfield.OnPointerClick(new PointerEventData(system));  //if it's an input field, also set the text caret
             
                system.SetSelectedGameObject(next.gameObject, new BaseEventData(system));
            }
            //else Debug.Log("next nagivation element not found");
         
        }
    }
}
 


Но неужели нет никакого решения проще, без километров кода?..

Re: Переключение с помощью tab между inputfield

СообщениеДобавлено: 02 мар 2017, 12:50
jet_aleks
можно оптимизировать или написать свой более короче. но в одну строчку Вы уж точно не влезете!