obsidian/笔记文件/2.笔记/Camera.WorldToScreenPoint.md

41 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

2025-03-26 00:02:56 +08:00
#unity/日常积累
# [Camera](https://docs.unity.cn/cn/current/ScriptReference/Camera.html).WorldToScreenPoint
public [Vector3](https://docs.unity.cn/cn/current/ScriptReference/Vector3.html) WorldToScreenPoint ([Vector3](https://docs.unity.cn/cn/current/ScriptReference/Vector3.html) position);
public [Vector3](https://docs.unity.cn/cn/current/ScriptReference/Vector3.html) WorldToScreenPoint ([Vector3](https://docs.unity.cn/cn/current/ScriptReference/Vector3.html) position, [Camera.MonoOrStereoscopicEye](https://docs.unity.cn/cn/current/ScriptReference/Camera.MonoOrStereoscopicEye.html) eye);
## 参数
eye
可选参数,可用于指定要使用的眼睛变换。默认值为 Mono。
## 描述
将 `position` 从世界空间变换为屏幕空间。
屏幕空间以像素定义。屏幕的左下角为 (0,0),右上角 为 ([pixelWidth](https://docs.unity.cn/cn/current/ScriptReference/Camera-pixelWidth.html),[pixelHeight](https://docs.unity.cn/cn/current/ScriptReference/Camera-pixelHeight.html))。z 位置为与摄像机的距离,采用世界单位。
``` cs
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public Transform target;
Camera cam;
void Start()
{
cam = GetComponent<Camera>();
}
void Update()
{
Vector3 screenPos = cam.WorldToScreenPoint(target.position);
Debug.Log("target is " + screenPos.x + " pixels from the left");
}
}
```