Camera.ScreenPointToRay 解析

Unity官方文档:

Camera.ScreenPointToRay

public function ScreenPointToRay(position: Vector3): Ray;

Description

Returns a ray going from camera through a screen point.

Resulting ray is in world space, starting on the near plane of the camera and going through position's (x,y) pixel coordinates on the screen (position.z is ignored).

Screenspace is defined in pixels. The bottom-left of the screen is (0,0); the right-top is (pixelWidth,pixelHeight).

    // Draws a line in the scene view going through a point 200 pixels
    // from the lower-left corner of the screen
    function Update () {
        var ray : Ray = camera.ScreenPointToRay (Vector3(200,200,0));
        Debug.DrawRay (ray.origin, ray.direction * 10, Color.yellow);
    }

 

解释说明:

Returns a ray going from camera through a screen point.

返回一条射线,从相机开始并且穿过一个屏幕中的点。

Resulting ray is in world space, starting on the near plane of the camera and going through position's (x,y) pixel coordinates on the screen (position.z is ignored).

返回的射线在世界坐标空间,从相机的近剪裁面开始穿过一个屏幕中的以像素为单位的点(x,y),(忽略z坐标)

Screenspace is defined in pixels. The bottom-left of the screen is (0,0); the right-top is (pixelWidth,pixelHeight).

屏幕空间是用像素定义的。左下角是(0,0)点,右上角是(pixelWidth,pixelHeight)点。

 

补充:

near plane 是近剪裁面的意思。

剪裁面是相机的可见范围,他就像一个被削了尖的金字塔,近剪裁面就是金字塔顶部,这也表示了相机可以看到的最近距离,远剪裁面就是金字塔的底部,表示相机可以看到的最远距离。

posted @ 2015-04-07 20:12  追峰人  阅读(2672)  评论(0编辑  收藏  举报