Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public Vector3 ScreenToWorldPoint(Vector3 position);

public Vector3 ScreenToWorldPoint(Vector3 position, Camera.MonoOrStereoscopicEye eye);

Параметры

position Позиция в пространстве экрана (часто мышь x, y) плюс позиция z для глубины (например, плоскость отсечения камеры).
eye По умолчанию Camera.MonoOrStereoscopicEye.Mono. Для использования в стереоскопический рендеринг (например, для виртуальной реальности).

Возвращает

Vector3 Точка мирового пространства, созданная путем преобразования точки пространства экрана на заданном расстоянии z от плоскости камеры.

Описание

Преобразует точку из экранного пространства в мировое пространство, где мировое пространство определяется как система координат на самом верху иерархии вашей игры.

Координаты в мировом пространстве по-прежнему можно вычислить, даже если они предоставлены как внеэкранные координаты, например, для создания экземпляра внеэкранного объекта рядом с определенным углом экрана.

Пространство экрана определяется в пикселях. Нижний левый угол экрана (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(); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3