1- using UnityEngine ;
2- using UnityEngine . EventSystems ;
3- using Valve . VR . Extras ;
4-
5- public class SteamVRLaserWrapper : MonoBehaviour
6- {
7- /**
8- This script lets the SteamVR laser interact with Unity Buttons using Box Colliders
9- Offered up by a gracious soul on the Unity Forums
10- TODO: Find original author
11- **/
12-
13- private SteamVR_LaserPointer steamVrLaserPointer ;
14-
15- private void Awake ( )
16- {
17- steamVrLaserPointer = gameObject . GetComponent < SteamVR_LaserPointer > ( ) ;
18- steamVrLaserPointer . PointerIn += OnPointerIn ;
19- steamVrLaserPointer . PointerOut += OnPointerOut ;
20- steamVrLaserPointer . PointerClick += OnPointerClick ;
21- }
22-
23- private void OnPointerClick ( object sender , PointerEventArgs e )
24- {
25- Debug . Log ( e . target . name ) ;
26- IPointerClickHandler clickHandler = e . target . GetComponent < IPointerClickHandler > ( ) ;
27- if ( clickHandler == null )
28- {
29- return ;
30- }
31-
32-
33- clickHandler . OnPointerClick ( new PointerEventData ( EventSystem . current ) ) ;
34- }
35-
36- private void OnPointerOut ( object sender , PointerEventArgs e )
37- {
38- IPointerExitHandler pointerExitHandler = e . target . GetComponent < IPointerExitHandler > ( ) ;
39- if ( pointerExitHandler == null )
40- {
41- return ;
42- }
43-
44- pointerExitHandler . OnPointerExit ( new PointerEventData ( EventSystem . current ) ) ;
45- }
46-
47- private void OnPointerIn ( object sender , PointerEventArgs e )
48- {
49- IPointerEnterHandler pointerEnterHandler = e . target . GetComponent < IPointerEnterHandler > ( ) ;
50- if ( pointerEnterHandler == null )
51- {
52- return ;
53- }
54-
55- pointerEnterHandler . OnPointerEnter ( new PointerEventData ( EventSystem . current ) ) ;
56- }
57- }
1+ using UnityEngine ;
2+ using UnityEngine . EventSystems ;
3+ using Valve . VR . Extras ;
4+
5+ public class SteamVRLaserWrapper : MonoBehaviour
6+ {
7+ /**
8+ This script lets the SteamVR laser interact with Unity Buttons using Box Colliders
9+ Offered up by a gracious soul on the Unity Forums
10+ TODO: Find original author
11+ **/
12+
13+ private SteamVR_LaserPointer steamVrLaserPointer ;
14+
15+ private void Awake ( )
16+ {
17+ steamVrLaserPointer = gameObject . GetComponent < SteamVR_LaserPointer > ( ) ;
18+ steamVrLaserPointer . PointerIn += OnPointerIn ;
19+ steamVrLaserPointer . PointerOut += OnPointerOut ;
20+ steamVrLaserPointer . PointerClick += OnPointerClick ;
21+ }
22+
23+ private void OnPointerClick ( object sender , PointerEventArgs e )
24+ {
25+ if ( e . target . TryGetComponent < IPointerClickHandler > ( out var clickHandler ) )
26+ {
27+ if ( clickHandler == null )
28+ {
29+ return ;
30+ }
31+ clickHandler . OnPointerClick ( new PointerEventData ( EventSystem . current ) ) ;
32+ }
33+ }
34+
35+ private void OnPointerOut ( object sender , PointerEventArgs e )
36+ {
37+ if ( e . target . TryGetComponent < IPointerExitHandler > ( out var pointerExitHandler ) )
38+ {
39+
40+
41+ if ( pointerExitHandler == null )
42+ {
43+ return ;
44+ }
45+
46+ pointerExitHandler . OnPointerExit ( new PointerEventData ( EventSystem . current ) ) ;
47+ }
48+ }
49+
50+ private void OnPointerIn ( object sender , PointerEventArgs e )
51+ {
52+ if ( e . target . TryGetComponent < IPointerEnterHandler > ( out var pointerEnterHandler ) )
53+ {
54+ if ( pointerEnterHandler == null )
55+ {
56+ return ;
57+ }
58+
59+ pointerEnterHandler . OnPointerEnter ( new PointerEventData ( EventSystem . current ) ) ;
60+ }
61+ }
62+ }
0 commit comments