Elin Decompiled Documentation
EA 23.102 Nightly
Loading...
Searching...
No Matches
InputFieldsTabSwitcher.cs
Go to the documentation of this file.
1
using
System.Collections.Generic;
2
using
UnityEngine;
3
using
UnityEngine.EventSystems;
4
5
public
class
InputFieldsTabSwitcher
:
ManlySingleton
<InputFieldsTabSwitcher>
6
{
7
private
EventSystem
currentEventSystem
;
8
9
private
List<UiInputField>
activeInputs
=
new
List<UiInputField>();
10
11
private
int
currentActiveInputIndex
= -1;
12
13
private
void
Start
()
14
{
15
currentEventSystem
= EventSystem.current;
16
}
17
18
private
void
Update
()
19
{
20
if
(Input.GetKeyDown(KeyCode.Tab))
21
{
22
TrySelectNextInput
();
23
}
24
}
25
26
private
void
TrySelectNextInput
()
27
{
28
CheckIfAnyInputIsSelected
();
29
SelectNextInput
();
30
}
31
32
private
void
CheckIfAnyInputIsSelected
()
33
{
34
GameObject selectedObject =
currentEventSystem
.currentSelectedGameObject;
35
if
(selectedObject !=
null
)
36
{
37
currentActiveInputIndex
=
activeInputs
.FindIndex((
UiInputField
x) => x.gameObject == selectedObject);
38
}
39
}
40
41
private
void
SelectNextInput
()
42
{
43
if
(
currentActiveInputIndex
> -1)
44
{
45
activeInputs
[
currentActiveInputIndex
].DeactivateInputField();
46
IterateSelectableIndex
();
47
currentEventSystem
.SetSelectedGameObject(
activeInputs
[
currentActiveInputIndex
].gameObject);
48
activeInputs
[
currentActiveInputIndex
].ActivateInputField();
49
}
50
}
51
52
private
void
IterateSelectableIndex
()
53
{
54
currentActiveInputIndex
++;
55
currentActiveInputIndex
%=
activeInputs
.Count;
56
}
57
58
public
void
RegisterInputField
(
UiInputField
input)
59
{
60
if
(!
activeInputs
.Contains(input))
61
{
62
activeInputs
.Add(input);
63
}
64
}
65
66
public
void
UnregisterInputField
(
UiInputField
input)
67
{
68
if
(
activeInputs
.Contains(input))
69
{
70
activeInputs
.Remove(input);
71
}
72
}
73
}
InputFieldsTabSwitcher
Definition:
InputFieldsTabSwitcher.cs:6
InputFieldsTabSwitcher.currentActiveInputIndex
int currentActiveInputIndex
Definition:
InputFieldsTabSwitcher.cs:11
InputFieldsTabSwitcher.Update
void Update()
Definition:
InputFieldsTabSwitcher.cs:18
InputFieldsTabSwitcher.TrySelectNextInput
void TrySelectNextInput()
Definition:
InputFieldsTabSwitcher.cs:26
InputFieldsTabSwitcher.UnregisterInputField
void UnregisterInputField(UiInputField input)
Definition:
InputFieldsTabSwitcher.cs:66
InputFieldsTabSwitcher.Start
void Start()
Definition:
InputFieldsTabSwitcher.cs:13
InputFieldsTabSwitcher.RegisterInputField
void RegisterInputField(UiInputField input)
Definition:
InputFieldsTabSwitcher.cs:58
InputFieldsTabSwitcher.activeInputs
List< UiInputField > activeInputs
Definition:
InputFieldsTabSwitcher.cs:9
InputFieldsTabSwitcher.CheckIfAnyInputIsSelected
void CheckIfAnyInputIsSelected()
Definition:
InputFieldsTabSwitcher.cs:32
InputFieldsTabSwitcher.IterateSelectableIndex
void IterateSelectableIndex()
Definition:
InputFieldsTabSwitcher.cs:52
InputFieldsTabSwitcher.currentEventSystem
EventSystem currentEventSystem
Definition:
InputFieldsTabSwitcher.cs:7
InputFieldsTabSwitcher.SelectNextInput
void SelectNextInput()
Definition:
InputFieldsTabSwitcher.cs:41
ManlySingleton
Definition:
ManlySingleton.cs:4
UiInputField
Definition:
UiInputField.cs:7
Elin
Plugins.UI
InputFieldsTabSwitcher.cs
Generated by
1.9.6