UnityAPI手册-2019.4官网版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
Camera.ScreenToWorldPoint
# [Camera](https://docs.unity3d.com/cn/2019.4/ScriptReference/Camera.html).ScreenToWorldPoint public [Vector3](https://docs.unity3d.com/cn/2019.4/ScriptReference/Vector3.html) **ScreenToWorldPoint** ([Vector3](https://docs.unity3d.com/cn/2019.4/ScriptReference/Vector3.html) **position**); public [Vector3](https://docs.unity3d.com/cn/2019.4/ScriptReference/Vector3.html) **ScreenToWorldPoint** ([Vector3](https://docs.unity3d.com/cn/2019.4/ScriptReference/Vector3.html) **position**, [Camera.MonoOrStereoscopicEye](https://docs.unity3d.com/cn/2019.4/ScriptReference/Camera.MonoOrStereoscopicEye.html) **eye**); ## 参数 | position | 屏幕空间位置(通常为 mouse x, y),加上表示深度的 z 位置(例如,摄像机裁剪面)。 | | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | eye | 默认为 [Camera.MonoOrStereoscopicEye.Mono](https://docs.unity3d.com/cn/2019.4/ScriptReference/Camera.MonoOrStereoscopicEye.Mono.html)。可设置为 [Camera.MonoOrStereoscopicEye.Left](https://docs.unity3d.com/cn/2019.4/ScriptReference/Camera.MonoOrStereoscopicEye.Left.html) 或 [Camera.MonoOrStereoscopicEye.Right](https://docs.unity3d.com/cn/2019.4/ScriptReference/Camera.MonoOrStereoscopicEye.Right.html),以用于立体渲染(例如,用于 VR)。 | ## 返回 **Vector3** 通过转换到摄像机平面距离为 z 的屏幕空间点创建的世界空间点。 ## 描述 将点从屏幕空间变换为世界空间。其中,世界空间定义为位于游戏层级视图最顶层的坐标系统。 即使以离屏坐标的形式提供时,仍可计算世界空间坐标,例如,用于实例化靠近屏幕特定角的离屏对象。 屏幕空间以像素定义。屏幕的左下角为 (0,0),右上角 为 ([pixelWidth](https://docs.unity3d.com/cn/2019.4/ScriptReference/Camera-pixelWidth.html),[pixelHeight](https://docs.unity3d.com/cn/2019.4/ScriptReference/Camera-pixelHeight.html))。z 位置为与摄像机的距离,采用世界单位。 ``` // Convert the 2D position of the mouse into a // 3D position. Display these on the game window. using UnityEngine; public class ExampleClass : MonoBehaviour { private Camera cam; void Start() { cam = Camera.main; } void OnGUI() { Vector3 point = new Vector3(); Event currentEvent = Event.current; Vector2 mousePos = new Vector2(); // Get the mouse position from Event. // Note that the y position from Event is inverted. mousePos.x = currentEvent.mousePosition.x; mousePos.y = cam.pixelHeight - currentEvent.mousePosition.y; point = cam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, cam.nearClipPlane)); GUILayout.BeginArea(new Rect(20, 20, 250, 120)); GUILayout.Label("Screen pixels: " + cam.pixelWidth + ":" + cam.pixelHeight); GUILayout.Label("Mouse position: " + mousePos); GUILayout.Label("World position: " + point.ToString("F3")); GUILayout.EndArea(); } } ```
da
2022年5月24日 10:34
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码