1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
using System.Collections.Generic;
using System.Text;
using Rewired.Integration.UnityUI;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
namespace Rewired.Demos;
[AddComponentMenu("")]
public sealed class PlayerPointerEventHandlerExample : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler, IPointerUpHandler, IPointerDownHandler, IPointerClickHandler, IScrollHandler, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public Text text;
private const int logLength = 10;
private List<string> log = new List<string>();
private void Log(string o)
{
log.Add(o);
if (log.Count > 10)
{
log.RemoveAt(0);
}
}
private void Update()
{
if (!(text != null))
{
return;
}
StringBuilder stringBuilder = new StringBuilder();
foreach (string item in log)
{
stringBuilder.AppendLine(item);
}
text.text = stringBuilder.ToString();
}
public void OnPointerEnter(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnPointerEnter: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData));
}
}
public void OnPointerExit(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnPointerExit: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData));
}
}
public void OnPointerUp(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnPointerUp: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData) + ", Button Index = " + playerPointerEventData.buttonIndex);
}
}
public void OnPointerDown(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnPointerDown: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData) + ", Button Index = " + playerPointerEventData.buttonIndex);
}
}
public void OnPointerClick(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnPointerClick: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData) + ", Button Index = " + playerPointerEventData.buttonIndex);
}
}
public void OnScroll(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnScroll: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData));
}
}
public void OnBeginDrag(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnBeginDrag: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData) + ", Button Index = " + playerPointerEventData.buttonIndex);
}
}
public void OnDrag(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnDrag: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData) + ", Button Index = " + playerPointerEventData.buttonIndex);
}
}
public void OnEndDrag(PointerEventData eventData)
{
if (eventData is PlayerPointerEventData)
{
PlayerPointerEventData playerPointerEventData = (PlayerPointerEventData)eventData;
Log("OnEndDrag: Player = " + playerPointerEventData.playerId + ", Pointer Index = " + playerPointerEventData.inputSourceIndex + ", Source = " + GetSourceName(playerPointerEventData) + ", Button Index = " + playerPointerEventData.buttonIndex);
}
}
private static string GetSourceName(PlayerPointerEventData playerEventData)
{
if (playerEventData.sourceType == PointerEventType.Mouse)
{
if (playerEventData.mouseSource is Behaviour)
{
return (playerEventData.mouseSource as Behaviour).name;
}
}
else if (playerEventData.sourceType == PointerEventType.Touch && playerEventData.touchSource is Behaviour)
{
return (playerEventData.touchSource as Behaviour).name;
}
return null;
}
}
|