在Unity C#中,我试图在光线投射命中的点生成一个立方体



我需要在光线投射命中的位置生成一个立方体,但问题是我在它命中的碰撞器的边缘生成该立方体。所以它在另一个立方体中产生了立方体。这是一张照片这不是一场比赛,我只是在玩,但我觉得这是一个有趣的问题。

一旦你有了命中点,你就可以随心所欲地实例化立方体,要么在命中的游戏对象位置获得游戏对象位置goPos(未调试代码(:

Vector3 goPos = Vector3.zero;    
if (Physics.Raycast(ray, out hit)){
if (hit.collider != null) {
Debug.Log("hit!");
goPos = hit.collider.gameObject;
}
else {
Debug.Log("no hit");
}
}

或者,命中位置本身,使用hit.point。检查文件

您可以使用OnDrawGizmos((在场景中绘制调试元素,以检查在实例化多维数据集之前是否以某种方式更改了命中点。

此外,您还需要共享一些代码来检查如何获得命中点和实例化多维数据集。

默认情况下,对象在对象的中心点生成。如果你想在自定义位置生成,你可以制作一个空的gameObject,并使立方体成为它的子对象,然后你可以将父对象定位在任何你想要的位置,并使其成为要实例化的预制对象。

最新更新