瀏覽代碼

Fix for dodgy Camera.MousePick in letterbox layout.

Mark Sibly 7 年之前
父節點
當前提交
624ee79330
共有 1 個文件被更改,包括 12 次插入8 次删除
  1. 12 8
      modules/mojo3d/scene/entities/camera.monkey2

+ 12 - 8
modules/mojo3d/scene/entities/camera.monkey2

@@ -225,15 +225,19 @@ Class Camera Extends Entity
 	End
 	End
 	
 	
 	Method MousePick:RayCastResult( collisionMask:Int=-1 )
 	Method MousePick:RayCastResult( collisionMask:Int=-1 )
-	
-		Local mouse:=Cast<Vec2f>( Mouse.Location )
+		
+		Local mouse:Vec2f=Mouse.Location
 
 
-		If App.ActiveWindow mouse.y=App.ActiveWindow.Height-mouse.y
-			
-		If _view mouse=_view.TransformWindowPointToView( mouse )
-			
-		mouse.x-=Viewport.min.x
-		mouse.y-=Viewport.min.y
+		If _view
+			If App.ActiveWindow	And App.ActiveWindow<>_view 
+				mouse=_view.TransformPointFromView( mouse,App.ActiveWindow )
+			Endif
+			mouse.y=_view.Height-mouse.y
+		Else
+			mouse.x-=Viewport.min.x
+			mouse.y-=Viewport.min.y
+			mouse.y=Viewport.Height-mouse.y
+		Endif
 		
 		
 		Return Pick( mouse,collisionMask )
 		Return Pick( mouse,collisionMask )
 	End
 	End