RaycastHit.textureCoord 值的不连续性(获取正确的纹理坐标)

Discontinuity in RaycastHit.textureCoord values (getting coordinates on texture right)

您好,我正在尝试获取纹理上的特定坐标(在鼠标光标下)。所以在我执行的鼠标事件中:

Ray outRay = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit clickRayHit = new RaycastHit();

if (!Physics.Raycast(outRay, out clickRayHit))
{
    return;
}

Vector2 textureCoordinate = clickRayHit.textureCoord;

Texture2D objectTexture = gameObject.GetComponent<Renderer>().material.mainTexture as Texture2D;

int xCord = (int)(objectTexture.width * textureCoordinate.x);
int yCord = (int)(objectTexture.height * textureCoordinate.y);

但问题是我得到的坐标不是精确地在光标下而是 "somewhat near it"。坐标并不是一直以一种方式移动,而是移动也不是随机的。它们在纹理的不同点上有不同的移动,但是: 它们保留在真实光标区域的某处 当光标在同一点上方时,坐标以相同的方式移动。

这是坐标日志的一部分:http://pastebin.ca/3029357

如果我对问题的描述不够好,我可以录制一个简短的截屏视频。

GameObject 是一个平面。

如果相关 mouseEvent 由 windows mouseHook 生成。 (具体应用)

我做错了什么?

更新: 我决定录制截屏视频 - https://youtu.be/LC71dAr_tCM?t=42。在这里您可以通过我的应用程序看到 Paint window 图像。在左下角,您可以看到 Paint 正在显示鼠标的坐标(我以我之前描述的方式获取此坐标 - 纹理上的点的位置)。因此,当我移动鼠标光标时,您可以看到坐标是如何变化的。

UPD2:
我只想再强调一次,这种转变不是恒定的或线性的。鼠标坐标周围可能有 "jumps"(但不仅是跳跃)。上面的视频解释得更好。

所以这毕竟是缩放问题。其中一个标度值是负数并导致此行为。