Skip to content

Commit cfba822

Browse files
committed
Audio
1 parent dc3a467 commit cfba822

File tree

4 files changed

+172
-10
lines changed

4 files changed

+172
-10
lines changed

Runtime/Ui/Audio.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
using Juce.CoreUnity.PointerCallback;
2+
using Juce.CoreUnity.Ui.SelectableCallback;
3+
using UnityEngine;
4+
using UnityEngine.EventSystems;
5+
6+
namespace Juce.CoreUnity.Ui.Audio
7+
{
8+
public class PointerAndSelectableCallbacksAudioPlayer : MonoBehaviour
9+
{
10+
[Header("References")]
11+
[SerializeField] private PointerCallbacks pointerCallbacks = default;
12+
[SerializeField] private SelectableCallbacks selectableCallbacks = default;
13+
[SerializeField] private AudioSource audioSource = default;
14+
15+
[Header("Clips")]
16+
[SerializeField] private AudioClip onUpClip = default;
17+
[SerializeField] private AudioClip onDownClip = default;
18+
[SerializeField] private AudioClip onEnterSelectClip = default;
19+
[SerializeField] private AudioClip onExitDeselectClip = default;
20+
[SerializeField] private AudioClip onClickSubmitClip = default;
21+
22+
private void Awake()
23+
{
24+
pointerCallbacks.OnUp += OnPointerCallbacksUp;
25+
pointerCallbacks.OnDown += OnPointerCallbacksDown;
26+
pointerCallbacks.OnEnter += OnPointerCallbacksEnter;
27+
pointerCallbacks.OnExit += OnPointerCallbacksExit;
28+
pointerCallbacks.OnClick += OnPointerCallbacksClick;
29+
30+
selectableCallbacks.OnSelected += OnSelectableCallbacksSelected;
31+
selectableCallbacks.OnDeselected += OnSelectableCallbacksDeselected;
32+
selectableCallbacks.OnSubmited += OnSelectableCallbacksSubmited;
33+
}
34+
35+
private void OnDestroy()
36+
{
37+
pointerCallbacks.OnUp -= OnPointerCallbacksUp;
38+
pointerCallbacks.OnDown -= OnPointerCallbacksDown;
39+
pointerCallbacks.OnEnter -= OnPointerCallbacksEnter;
40+
pointerCallbacks.OnExit -= OnPointerCallbacksExit;
41+
pointerCallbacks.OnClick -= OnPointerCallbacksClick;
42+
43+
selectableCallbacks.OnSelected -= OnSelectableCallbacksSelected;
44+
selectableCallbacks.OnDeselected -= OnSelectableCallbacksDeselected;
45+
selectableCallbacks.OnSubmited -= OnSelectableCallbacksSubmited;
46+
}
47+
48+
private void OnPointerCallbacksUp(PointerCallbacks pointerCallbacks, PointerEventData pointerEventData)
49+
{
50+
if (onUpClip == null)
51+
{
52+
return;
53+
}
54+
55+
audioSource.PlayOneShot(onUpClip);
56+
}
57+
58+
private void OnPointerCallbacksDown(PointerCallbacks pointerCallbacks, PointerEventData pointerEventData)
59+
{
60+
if (onDownClip == null)
61+
{
62+
return;
63+
}
64+
65+
audioSource.PlayOneShot(onDownClip);
66+
}
67+
68+
private void OnPointerCallbacksEnter(PointerCallbacks pointerCallbacks, PointerEventData pointerEventData)
69+
{
70+
if (onEnterSelectClip == null)
71+
{
72+
return;
73+
}
74+
75+
audioSource.PlayOneShot(onEnterSelectClip);
76+
}
77+
78+
private void OnPointerCallbacksExit(PointerCallbacks pointerCallbacks, PointerEventData pointerEventData)
79+
{
80+
if (onExitDeselectClip == null)
81+
{
82+
return;
83+
}
84+
85+
audioSource.PlayOneShot(onExitDeselectClip);
86+
}
87+
88+
private void OnPointerCallbacksClick(PointerCallbacks pointerCallbacks, PointerEventData pointerEventData)
89+
{
90+
if (onClickSubmitClip == null)
91+
{
92+
return;
93+
}
94+
95+
audioSource.PlayOneShot(onClickSubmitClip);
96+
}
97+
98+
private void OnSelectableCallbacksSelected(SelectableCallbacks selectableCallbacks, BaseEventData baseEventData)
99+
{
100+
if (onEnterSelectClip == null)
101+
{
102+
return;
103+
}
104+
105+
audioSource.PlayOneShot(onEnterSelectClip);
106+
}
107+
108+
private void OnSelectableCallbacksDeselected(SelectableCallbacks selectableCallbacks, BaseEventData baseEventData)
109+
{
110+
if (onExitDeselectClip == null)
111+
{
112+
return;
113+
}
114+
115+
audioSource.PlayOneShot(onExitDeselectClip);
116+
}
117+
118+
private void OnSelectableCallbacksSubmited(SelectableCallbacks selectableCallbacks, BaseEventData baseEventData)
119+
{
120+
if (onClickSubmitClip == null)
121+
{
122+
return;
123+
}
124+
125+
audioSource.PlayOneShot(onClickSubmitClip);
126+
}
127+
}
128+
}

Runtime/Ui/Audio/PointerAndSelectableCallbacksAudioPlayer.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Runtime/Ui/TweenPlayer/PointerAndSelectableCallbacksTweenPlayer.cs

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,6 @@ private void OnPointerCallbacksExit(PointerCallbacks pointerCallbacks, PointerEv
9292

9393
private void OnPointerCallbacksClick(PointerCallbacks pointerCallbacks, PointerEventData pointerEventData)
9494
{
95-
if (onClickSubmitAnimation == null)
96-
{
97-
return;
98-
}
99-
10095
ExecuteClick(CancellationToken.None).RunAsync();
10196
}
10297

@@ -132,28 +127,38 @@ private void OnSelectableCallbacksDeselected(SelectableCallbacks selectableCallb
132127

133128
private void OnSelectableCallbacksSubmited(SelectableCallbacks selectableCallbacks, BaseEventData baseEventData)
134129
{
135-
if (onClickSubmitAnimation == null)
136-
{
137-
return;
138-
}
139-
140130
ExecuteSubmit(CancellationToken.None).RunAsync();
141131
}
142132

143133
private async Task ExecuteClick(CancellationToken cancellationToken)
144134
{
135+
if (onClickSubmitAnimation == null)
136+
{
137+
return;
138+
}
139+
145140
await onClickSubmitAnimation.Execute(instantly: false, cancellationToken);
146141

147142
if (!executeExitAfterClick)
148143
{
149144
return;
150145
}
151146

147+
if(onExitDeselectAnimation == null)
148+
{
149+
return;
150+
}
151+
152152
await onExitDeselectAnimation.Execute(instantly: false, cancellationToken);
153153
}
154154

155155
private async Task ExecuteSubmit(CancellationToken cancellationToken)
156156
{
157+
if (onClickSubmitAnimation == null)
158+
{
159+
return;
160+
}
161+
157162
await onClickSubmitAnimation.Execute(instantly: false, cancellationToken);
158163

159164
if (!executeSelectedOrDeselectedAfterSubmit)
@@ -163,10 +168,20 @@ private async Task ExecuteSubmit(CancellationToken cancellationToken)
163168

164169
if (selectableCallbacks.Selected)
165170
{
171+
if(onEnterSelectAnimation == null)
172+
{
173+
return;
174+
}
175+
166176
await onEnterSelectAnimation.Execute(instantly: false, cancellationToken);
167177
}
168178
else
169179
{
180+
if (onExitDeselectAnimation == null)
181+
{
182+
return;
183+
}
184+
170185
await onExitDeselectAnimation.Execute(instantly: false, cancellationToken);
171186
}
172187
}

0 commit comments

Comments
 (0)