Unity3D:如何根据鼠标输入使用对撞机动态创建 3D 网格?

Unity3D : how can I dynamically create a 3D mesh with a collider based on mouse input?

上下文:我正在制作一个 3D RTS 游戏,我想通过拖动 select 来检测用户正在 select 的单位(就像你 select 上的多个图标一样你的电脑桌面 )

为此,我想使用用户单击时鼠标的初始位置和鼠标的当前位置创建 3D 网格。与网格的碰撞表明该装置现在位于 select 离子盒

如何获得创建 3D 网格所需的 8 个点?我知道相机的裁剪平面是一个好的开始,但我不知道如何获得这些值。

如何以不会导致大量 fps 下降的方式更新网格形状和碰撞器?

如果用鼠标拖动,就不需要复杂的网格。使用带有匹配对撞机的长方体基元,然后使用对象的缩放比例为其提供所需的正确尺寸。这将非常快。 一个巧妙的解决方案也是将该长方体旋转到与相机相同的角度。 使您的选择对象成为相机对象的子对象可能很有意义,因此它会随之移动。 然后你只需要一点数学就可以将屏幕上的鼠标坐标或 window 转换为所需的矩形尺寸。实际上,您将通过相机将矩形光束投射到世界上。