@@ -312,31 +312,29 @@ public void OnPointerUp(PointerEventData eventData) {
312
312
) ) ;
313
313
}
314
314
315
- public Vector2 ? getPointPosition ( PointerEventData eventData ) {
316
- if ( eventData . enterEventCamera == null && this . canvas . renderMode == RenderMode . ScreenSpaceCamera ) {
317
- return null ;
315
+ Camera getActiveCamera ( ) {
316
+ //refer to: https://zhuanlan.zhihu.com/p/37127981
317
+ Camera eventCamera = null ;
318
+ if ( this . canvas . renderMode != RenderMode . ScreenSpaceOverlay ) {
319
+ eventCamera = this . canvas . GetComponent < GraphicRaycaster > ( ) . eventCamera ;
318
320
}
319
-
321
+ return eventCamera ;
322
+ }
323
+
324
+ Vector2 ? getPointPosition ( PointerEventData eventData ) {
325
+ Camera camera = this . getActiveCamera ( ) ;
320
326
Vector2 localPoint ;
321
327
RectTransformUtility . ScreenPointToLocalPointInRectangle ( this . rectTransform , eventData . position ,
322
- eventData . enterEventCamera , out localPoint ) ;
328
+ camera , out localPoint ) ;
323
329
var scaleFactor = this . canvas . scaleFactor ;
324
330
localPoint . x = ( localPoint . x - this . rectTransform . rect . min . x ) * scaleFactor ;
325
331
localPoint . y = ( this . rectTransform . rect . max . y - localPoint . y ) * scaleFactor ;
326
332
return localPoint ;
327
333
}
328
334
329
- public Vector2 ? getPointPosition ( Vector2 position ) {
335
+ Vector2 ? getPointPosition ( Vector2 position ) {
330
336
Vector2 localPoint ;
331
- Camera eventCamera = null ;
332
-
333
- if ( this . canvas . renderMode != RenderMode . ScreenSpaceCamera ) {
334
- eventCamera = this . canvas . GetComponent < GraphicRaycaster > ( ) . eventCamera ;
335
- }
336
-
337
- if ( eventCamera == null && this . canvas . renderMode == RenderMode . ScreenSpaceCamera ) {
338
- return null ;
339
- }
337
+ Camera eventCamera = this . getActiveCamera ( ) ;
340
338
341
339
RectTransformUtility . ScreenPointToLocalPointInRectangle ( this . rectTransform , position ,
342
340
eventCamera , out localPoint ) ;
0 commit comments