Camera.ViewportPointToRay 视窗位置转射线

function ViewportPointToRay (position : Vector3) : Ray

Description描述

Returns a ray going from camera through a viewport point.

返回从相机出发穿过视点的一个射线。

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

产生的射线是在世界空间中,从相机的近裁剪面开始并穿过视口POSITION(x,y)坐标(position.z被忽略)

Viewport coordinates are normalized and relative to the camera. The bottom-left of the camera is (0,0); the top-right is (1,1).

视窗坐标被规范化,并相对于相机。相机的左下为(0,0);右上是(1,1)。

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
	void Update() {
		Ray ray = camera.ViewportPointToRay(new Vector3(0.5F, 0.5F, 0));
		RaycastHit hit;
		if (Physics.Raycast(ray, ref hit))
			print("I'm looking at " + hit.transform.name);
		else
			print("I'm looking at nothing!");
	}
}
// Prints the name of the object camera is directly looking at
//打印相机直接看到物体名称

function Update () {
	// Get the ray going through the center of the screen
	//获取穿过屏幕中心的射线
	var ray : Ray = camera.ViewportPointToRay (Vector3(0.5,0.5,0));
	// Do a raycast
	//投射
	var hit : RaycastHit;
	if (Physics.Raycast (ray, hit))
	print ("I'm looking at " + hit.transform.name);
	else
	print ("I'm looking at nothing!");
}
最后修改:2011年3月7日 Monday 11:30

本脚本参考基于Unity 3.4.1f5

英文部分版权属©Unity公司所有,中文部分© Unity圣典 版权所有,未经许可,严禁转载 。