Camera.ScreenToWorldPoint

切换到手册
public Vector3 ScreenToWorldPoint (Vector3 position);

描述

position 从屏幕空间变换为世界空间。

屏幕空间以像素定义。屏幕的左下角为 (0,0),右上角 为 (pixelWidth,pixelHeight)。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(); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961