如何在 Unity 中计算鼠标指针在某些 3D 对象上的位置?



是否有任何内置方法来计算与射线相对应的交叉点,表示鼠标指针(或触摸手指(与场景中的某个对象?

例如,如果我有一个球体,我可以计算它的紫外线坐标吗(不用自己写数学(?

如果你有一个网格,那么它上面已经有一个UV属性。至于从用户点击/触摸的地方发送光线投射,您需要自己做一些工作。

RaycastHit hit;
Ray ray = camera.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)) {
Transform objectHit = hit.transform;
// Do something with the object that was hit by the raycast.
}

我从 Unity 文档中提取了那段代码。

如果您需要光线击中物体的确切位置,则可以使用hit.point(hit.point的文档(

我猜你正在寻找这个 https://docs.unity3d.com/ScriptReference/RaycastHit-textureCoord.html

最新更新