unity 怎样正确获取2d世界坐标

 时间:2024-10-06 01:42:10

unity现在有非常强大的2d游戏开发功能踮碚牢邗了,但是有时候2d坐标获取老出问题,获取成3d世界坐标,这里说一下怎做。我在做这个战棋开发时发现的问题:http://jingya荏鱿胫协n.baidu.com/article/preview?eidEnc=72ee561a58604ae16138df33

工具/原料

一台电脑

unity4.0

方法/步骤

1、我们一般怎么获取鼠标的位置呢,用Input.mousePosition但在2D场景中,就会出问题,你会发现获取的鼠标的世界坐标完全与2D场景不符,就像这样那怎么办呢?

unity 怎样正确获取2d世界坐标

2、用Rayray=camera.ScreenPointToRay(Input饱终柯肢.mousePosition)我们发送射线到世界坐标系返回屏幕坐标,这样世界坐标就转化为屏幕坐标。因此如下:伊怕锱鳏Rayray=camera.ScreenPointToRay(Input.mousePosition);RaycastHithit;Physics.Raycast(ray,outhit);我们发送射线,Physics.Raycast返回射线碰撞到的物体。

3、那么问题又来了,我们发现2d物理碰撞无法被检测到,但物体必须有collider才会被射线检测到,我们只能添加physics而不physics2d了。

unity 怎样正确获取2d世界坐标

4、问题是我们要取得的是鼠标点击位置的坐标,而不是射线获取的物体的坐标,如果按照hit.transfrom.position,无论怎么点,输出坐标都一样,那是因为返回的值都是我们点击的背景地图的坐标。

unity 怎样正确获取2d世界坐标

unity 怎样正确获取2d世界坐标

5、所以我们用hit.point而不是hit.transfrom.position来得到坐标点。看每次都不一样。

unity 怎样正确获取2d世界坐标

6、现在,试一下,是不是能够完美获取鼠标的位置了。

少女前线云图计划月卡怎么获得 我的世界怎么打指令杀别人 流放者柯南投石机使用攻略 火炬之光2 攻略 第二幕支线 太吾绘卷怎么恢复健康
热门搜索
钟丽缇图片 画书的图片 游世无双漫画 老鹰的图片 动漫情侣头像一男一女