<Unity笔记>Camera.ScreenToWorldPoint 屏幕转世界位置

来源:互联网 发布:中美军事差距知乎 编辑:程序博客网 时间:2024/06/03 07:23

今天做2D游戏练习的时候,第一次遇到了这个API,我想要把鼠标指向的位置转换成游戏世界里的坐标位置,是这样使用的:

Vector3 mousePoint = camera.ScreenToWorldPoint (new Vector3(Input.mousePosition.x,Input.mousePosition.y,mainCamera.transform.position.z));

然后发现,只有当ScreenToWorldPoint()的参数Vector3为屏幕中心坐标时(Vector3.z为相机高度),才对应正确的世界坐标,然后在屏幕中心坐标的基础上,将鼠标移动一个向量a,得到的世界坐标是:当前屏幕中心的世界坐标 - a,而不是我们想要的当前屏幕中心的世界坐标 + a

……所以:
正确的鼠标指向的世界坐标 = (得到的坐标 - 世界中心坐标*2)*(-1)

通过这个方法,就可以完成很多工作啦!比如……2D游戏里的鼠标瞄准……
这里写图片描述

~

0 0