var startPoint =
shaft.transform.position
+ shaft.transform.forward;
var ray = new Ray(
startPoint,
-shaft.transform.forward
);
RaycastHit rayCastHit;
Physics.Raycast(ray, out rayCastHit);
var textured2D = (Texture2D)discoBall.renderer.material.mainTexture;
Vector2 textureCoord = rayCastHit.textureCoord;
Debug.Log(string.Format(
"{0},{1} at distance {2}",
textureCoord.x * textured2D.width,
textureCoord.y * textured2D.height,
rayCastHit.distance
));
我有一个球体,里面有一个对象“轴”对象。我将 startPoint 计算为在轴指向的方向上与轴的距离(以离开球体)。然后我创建一条以相同距离指向球体的射线,使其与我的球体外部发生碰撞。
Debug.Log 输出纹理坐标的 x,y = 0,0,距离的正确值 0.35。当我的球体上确实有一个带有纹理的材质时,为什么 textureCoord 总是 0,0?