版本: Unity 6 (6000.0)
语言英语
  • C#

Camera.ScreenPointToRay

建议更改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提供的每个建议更改,并在适用时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

切换到手册

声明

public Ray ScreenPointToRay(Vector3 pos);

声明

public Ray ScreenPointToRay(Vector3 pos, Camera.MonoOrStereoscopicEye eye);

参数

pos 一个 3D 点,其中 x 和 y 坐标包含以像素为单位的 2D 屏幕空间点。屏幕的左下角像素为 (0,0)。屏幕的右上角像素为 (屏幕宽度(像素) - 1, 屏幕高度(像素) - 1)。Unity 会忽略 z 坐标。
eye 可选参数,可用于指定要使用的哪个眼睛变换。默认值为 Mono。

描述

返回从相机穿过屏幕点的一条射线。

生成的射线位于世界空间中,从相机近平面开始,穿过屏幕上位置的 (x,y) 像素坐标。

//Attach this script to your Camera
//This draws a line in the Scene view going through a point 200 pixels from the lower-left corner of the screen
//To see this, enter Play Mode and switch to the Scene tab. Zoom into your Camera's position.
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { Camera cam; Vector3 pos = new Vector3(200, 200, 0);

void Start() { cam = GetComponent<Camera>(); }

void Update() { Ray ray = cam.ScreenPointToRay(pos); Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow); } }