使用多个显示器时 ScreenToWorldPoint 出现问题
Problem with ScreenToWorldPoint when using multiple monitors
我正在使用正交摄像头编写自上而下的射击游戏,当我只使用一台显示器时一切正常。
但是,当我在两个显示器都处于扩展模式(一个 1920x1200,另一个 1366x768)的情况下开始游戏时,鼠标在世界单位中的位置是错误的。
这是我用来将像素位置转换为世界单位的函数:Camera.main.ScreenToWorldPoint(Input.mousePosition);
当前使用的显示器的分辨率和鼠标的像素位置测量正确。当我将光标移离左下角稍微偏右的点时(在这个位置(大约 180,0 像素位置),测量和实际光标位置相同)。如果我在插入第二台显示器之前开始游戏,也不会出现此问题。
解决方案:
Screen.currentResolution
正在检测正确的分辨率,但是 Camera.main.pixelWidth
和 Camera.main.pixelHeight
(被 Camera.main.ScreenToWorldPoint(Input.mousePosition);
使用)正在检测一些未使用的显示器的分辨率原因
我正在使用正交摄像头编写自上而下的射击游戏,当我只使用一台显示器时一切正常。 但是,当我在两个显示器都处于扩展模式(一个 1920x1200,另一个 1366x768)的情况下开始游戏时,鼠标在世界单位中的位置是错误的。
这是我用来将像素位置转换为世界单位的函数:Camera.main.ScreenToWorldPoint(Input.mousePosition);
当前使用的显示器的分辨率和鼠标的像素位置测量正确。当我将光标移离左下角稍微偏右的点时(在这个位置(大约 180,0 像素位置),测量和实际光标位置相同)。如果我在插入第二台显示器之前开始游戏,也不会出现此问题。
解决方案:
Screen.currentResolution
正在检测正确的分辨率,但是 Camera.main.pixelWidth
和 Camera.main.pixelHeight
(被 Camera.main.ScreenToWorldPoint(Input.mousePosition);
使用)正在检测一些未使用的显示器的分辨率原因