关于 Unity 中触摸屏幕坐标与物体世界坐标的判定方法(以矩形为例)
处理思路
- 1.获取用户触摸的屏幕坐标(touch_vector3)
- 2.转换屏幕坐标为世界坐标(Camera.main.ScreenToWorldPoint(touch_vector3))
- 3.根据对应算法比较触摸点与目标点差值
- 4.差值在预期内,判定为用户选中;否则,未选中
算法选择
交点(射线)法
1.基本思路:
从任意位置画一条到目标点的水平线,计算该水平线进出平面边界的次数,如果是偶数,则点在平面外;如果是奇数,则点在平面内。点正好落在定点或边界时会出现特殊的判断。
如图:
2.代码实现
1 | /// <summary> |
面积法
- 1.基本思路
- 通过将矩形切割为多个三角形计算面积,与原面积比较差值;若大于 0 则不在,否则在。
- 所有边和目标点组成的三角形面积和是否等于总的多边形面积,如果相等,则在内部。反之在外部。
- 2.代码实现
1 |
|