c# - 如何检测点击的确切位置?

标签 c# unity-game-engine raycasting

我正在尝试使用 C# 获取 Unity 中单击的确切位置,但我不知道如何确定它。我尝试使用光线转换,得到了非常准确的位置,但它只是四舍五入到小数点后一位。这对我来说有点太大的错误了。那么我怎样才能获得完全准确的位置呢?

我的代码如下:

RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(holdPosition);
if (Physics.Raycast (ray, out hit, Mathf.Infinity, 1<<15)) {
    Debug.Log(hit.point);
}

我得到的结果类似于 (0.5, 1.3, -5.0),但我想要最多 4 或 5 位小数的精度。

最佳答案

您实际上确实得到了比这更精确的结果。控制台中的值已四舍五入。实际的浮点值确实具有更高的精度。如果您想查看那是什么,可以使用格式说明符,例如:

Debug.Log(hit.point.ToString("F4"));

其中“F4”standard numeric format string 。这应该会向您显示更精确的值。

关于c# - 如何检测点击的确切位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18312918/

相关文章:

c# - 如何创建 mysql 更新查询以在 c#.net windows 应用程序的一条语句中更新多行

unity-game-engine - Unity抛出: Request error (error): UnityEditor. AsyncHTTPClient :Done(State, Int32)错误

javascript - 给定三个点创建两个平行平面(Javascript)

c++ - C++ 中是否有一个简单且开源的光线转换库?

c# - 更好地引用 DLL 或具有多项目解决方案?

c# - 静态构造函数和 BeforeFieldInit?

c# - 持久化应用程序变量/设置 C#

c# - 让EditorWindow的最后一个EditorGUILayout填充剩余空间?

c# - Unity 3D 将对象设置为圆锥体

c - 如何修复我的 raycaster 中的扭曲透视?