U3D 实现英雄联盟鼠标点击英雄移动功能的射线检测方法

U3D 实现英雄联盟鼠标点击英雄移动功能的射线检测方法

解决方案:进行射线测试。首先你需要准备两样东西(1):一台相机(这是射线的起点)

(2):“碰撞信息”(用于记录射线与物体碰撞点的信息)

在u3d中创建一个空项目,并添加一个C#脚本:RaycastTest。添加我们刚才提到的两个东西:“Camera”和“Collision Information”,并初始化它们(相机稍后会初始化)

将脚本挂在相机(Main Camera)上,使用Maincamera本身对公共变量camera进行赋值

然后创建一个平面物体和一个立方体物体(物体缩放(0.2, 0.2, 0.2)以便可以放在世界坐标系原点作为参考),并将二者的坐标均设置为(0, 0, 0)

继续在更新中写代码:

现在运行项目,下面可以看到我的测试结果:此时我把鼠标放在立方体的上方,由于立方体在世界坐标系中位置较远UI界面,所以可以看到左边打印的结果中,x、z 都为 0,y 大于 0(因为立方体的上方在世界坐标系 y 轴的上方)

此时我们就可以获取到鼠标点击的点在世界坐标系中的位置信息了,如果你把鼠标放在我标记的1,2unity 射线,3,4象限中,你会看到不同的结果。

补充:为了方便测试游戏动态,可以添加如下代码,这样只有鼠标点击的时候才会打印信息unity 射线,并且还会有坐标参照。

添加上述代码后的效果图:

文章来源:https://blog.csdn.net/weixin_33204522/article/details/112944594