Unity 在鼠标点实例化对象得到错误的坐标

Unity Instantiate object at mouse point getting wrong coordinates

我正在开发 RTS 并想在鼠标位置放置一个游戏对象。这可行,但对象放置在错误的位置。

下图显示了鼠标所在位置的光线投射。但是对象(立方体,地形的左下角)在光线投射附近的任何地方都被实例化了。

这是我用来获取位置的代码,我做错了什么?

toBuild.build(Camera.main.ScreenToWorldPoint(hit.point));

看起来您正在世界中进行光线投射 space 但出于某种原因,您使用投射命中作为屏幕位置。它应该已经处于世界位置,所以不要使用 Camera.main.ScreenToWorldPoint().

经过进一步研究,我找到了位置不正确的原因。我在地形周围放置了一个盒子对撞机,光线投射显然击中了它。我卸下了盒子对撞机,它工作正常。