@@ -24,9 +24,15 @@ public class JCS_ButtonSoundEffect : MonoBehaviour
2424 {
2525 /* Variables */
2626
27- private RectTransform mRectTransform = null ;
2827 private EventTrigger mEventTrigger = null ;
2928
29+ [ Separator ( "Check Variables (JCS_ButtonSoundEffect)" ) ]
30+
31+ [ Tooltip ( "Is true when mouse is over this button." ) ]
32+ [ SerializeField ]
33+ [ ReadOnly ]
34+ private bool mIsEntered = false ;
35+
3036 [ Separator ( "Optional Variables (JCS_ButtonSoundEffect)" ) ]
3137
3238 [ Tooltip ( @"Sound Player for this button, if this transform dose not
@@ -55,7 +61,6 @@ public class JCS_ButtonSoundEffect : MonoBehaviour
5561 [ SerializeField ]
5662 private AudioClip mOnMouseDoubleClickSound = null ;
5763
58- private bool mIsOver = false ;
5964
6065 [ SerializeField ]
6166 private JCS_SoundMethod mOnMouseOverSoundMethod = JCS_SoundMethod . PLAY_SOUND ;
@@ -141,7 +146,6 @@ private void Awake()
141146 {
142147 if ( mSoundPlayer == null )
143148 mSoundPlayer = GetComponent < JCS_SoundPlayer > ( ) ;
144- mRectTransform = GetComponent < RectTransform > ( ) ;
145149 mEventTrigger = GetComponent < EventTrigger > ( ) ;
146150
147151 if ( mBtn == null )
@@ -164,8 +168,7 @@ private void Start()
164168
165169 if ( mAutoAddEvent )
166170 {
167- JCS_UIUtil . AddEventTriggerEvent ( mEventTrigger , EventTriggerType . PointerEnter , ItOnMouseOver ) ;
168- JCS_UIUtil . AddEventTriggerEvent ( mEventTrigger , EventTriggerType . PointerEnter , ItOnMouseDoubleClick ) ;
171+ JCS_UIUtil . AddEventTriggerEvent ( mEventTrigger , EventTriggerType . PointerEnter , ItOnMouseEnter ) ;
169172 JCS_UIUtil . AddEventTriggerEvent ( mEventTrigger , EventTriggerType . PointerExit , ItOnMouseExit ) ;
170173 JCS_UIUtil . AddEventTriggerEvent ( mEventTrigger , EventTriggerType . PointerDown , ItOnMouseDown ) ;
171174 JCS_UIUtil . AddEventTriggerEvent ( mEventTrigger , EventTriggerType . PointerUp , ItOnMouseUp ) ;
@@ -181,26 +184,17 @@ private void Update()
181184 private void HandleDoubleClick ( )
182185 {
183186 // IMPORTANT(JenChieh): only double click need update
184- if ( ! mIsOver )
185- return ;
186-
187- if ( mBtn == null )
187+ if ( mBtn == null || ! mIsEntered )
188188 return ;
189189
190190 if ( JCS_Input . OnMouseDoubleClick ( 0 ) )
191191 {
192- // either time is out or double click,
193- // both are all over the "double click event".
194- mIsOver = false ;
195-
196192 if ( ! mBtn . interactable )
197193 {
198194 // play not ineractable sound
199195 mSoundPlayer . PlayOneShotByMethod (
200196 mOnMouseDoubleClickRefuseSound ,
201197 mOnMouseDoubleClickRefuseSoundMethod ) ;
202-
203- return ;
204198 }
205199 else
206200 {
@@ -210,18 +204,16 @@ private void HandleDoubleClick()
210204 mOnMouseDoubleClickSoundMethod ) ;
211205 }
212206 }
213-
214- // check if the mouse still over or not
215- if ( ! JCS_UIUtil . MouseOverGUI ( mRectTransform ) )
216- mIsOver = false ;
217207 }
218208
219- public void ItOnMouseOver ( )
209+ public void ItOnMouseEnter ( )
220210 {
221- ItOnMouseOver ( null ) ;
211+ ItOnMouseEnter ( null ) ;
222212 }
223- public void ItOnMouseOver ( PointerEventData data )
213+ public void ItOnMouseEnter ( PointerEventData data )
224214 {
215+ mIsEntered = true ;
216+
225217 if ( mBtn != null )
226218 {
227219 if ( ! mBtn . interactable )
@@ -245,6 +237,8 @@ public void ItOnMouseExit()
245237 }
246238 public void ItOnMouseExit ( PointerEventData data )
247239 {
240+ mIsEntered = false ;
241+
248242 if ( mBtn == null )
249243 return ;
250244
@@ -269,7 +263,7 @@ public void ItOnMouseDown()
269263 }
270264 public void ItOnMouseDown ( PointerEventData data )
271265 {
272- if ( mBtn == null )
266+ if ( mBtn == null || ! mIsEntered )
273267 return ;
274268
275269 if ( ! mBtn . interactable )
@@ -294,7 +288,7 @@ public void ItOnMouseUp()
294288 }
295289 public void ItOnMouseUp ( PointerEventData data )
296290 {
297- if ( mBtn == null )
291+ if ( mBtn == null || ! mIsEntered )
298292 return ;
299293
300294 if ( ! mBtn . interactable )
@@ -335,15 +329,5 @@ public void ItOnMouseClick(PointerEventData data)
335329 mOnMouseClickSoundMethod ) ;
336330 }
337331 }
338-
339- // plz put this in Pointer Enter event
340- public void ItOnMouseDoubleClick ( )
341- {
342- ItOnMouseDoubleClick ( null ) ;
343- }
344- public void ItOnMouseDoubleClick ( PointerEventData data )
345- {
346- mIsOver = true ;
347- }
348332 }
349333}
0 commit comments