Skip to content

Commit 07b4019

Browse files
authoredJun 29, 2023
Script Upload
1 parent 1ffaead commit 07b4019

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed
 

‎ScrollSelect.cs

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
using UnityEngine;
2+
using UnityEngine.EventSystems;
3+
using UnityEngine.UI;
4+
using TMPro;
5+
using System.Collections;
6+
7+
public class ScrollSelect : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerDownHandler, IPointerUpHandler
8+
{
9+
public ScrollRect scrollRect;
10+
private TMP_InputField inputField;
11+
12+
private bool dragging = false;
13+
private bool clickStarted = false;
14+
15+
private void Start()
16+
{
17+
inputField = GetComponent<TMP_InputField>();
18+
}
19+
20+
public void OnBeginDrag(PointerEventData eventData)
21+
{
22+
dragging = true;
23+
ExecuteEvents.Execute(scrollRect.gameObject, eventData, ExecuteEvents.beginDragHandler);
24+
}
25+
26+
public void OnDrag(PointerEventData eventData)
27+
{
28+
if (dragging)
29+
{
30+
ExecuteEvents.Execute(scrollRect.gameObject, eventData, ExecuteEvents.dragHandler);
31+
}
32+
}
33+
34+
public void OnEndDrag(PointerEventData eventData)
35+
{
36+
dragging = false;
37+
ExecuteEvents.Execute(scrollRect.gameObject, eventData, ExecuteEvents.endDragHandler);
38+
}
39+
40+
public void OnPointerDown(PointerEventData eventData)
41+
{
42+
clickStarted = true;
43+
//inputField.interactable = false;
44+
45+
if (inputField == null)
46+
return;
47+
48+
inputField.DeactivateInputField(true);
49+
ExecuteEvents.Execute(scrollRect.gameObject, eventData, ExecuteEvents.pointerDownHandler);
50+
}
51+
52+
public void OnPointerUp(PointerEventData eventData)
53+
{
54+
if (clickStarted)
55+
{
56+
clickStarted = false;
57+
58+
if (inputField == null)
59+
return;
60+
61+
StartCoroutine(Delay());
62+
63+
EventSystem.current.SetSelectedGameObject(inputField.gameObject, null);
64+
}
65+
}
66+
67+
IEnumerator Delay()
68+
{
69+
yield return new WaitForSeconds(0.8f);
70+
71+
inputField.interactable = true;
72+
}
73+
}

‎UITest.cs

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
5+
public class UITest : MonoBehaviour
6+
{
7+
public ScreenOrientation targetOrientation = ScreenOrientation.Portrait;
8+
public void ChangeScreenOrienation()
9+
{
10+
if (Screen.orientation == ScreenOrientation.Portrait)
11+
{
12+
Screen.orientation = ScreenOrientation.LandscapeLeft;
13+
}
14+
else
15+
{
16+
Screen.orientation = ScreenOrientation.Portrait;
17+
}
18+
}
19+
}

0 commit comments

Comments
 (0)
Please sign in to comment.