/// <summary> 将世界坐标转换为Ugui坐标 </summary> /// <param name="position"> 需要转换的三维坐标点 </param>public void OpenWorldToScreen(Vector3 position){Vector3 anchorPos = mainCamera1.WorldToScreenPoint(position);}
将转换好的坐标放置到UI中
[Header("相机")][SerializeField]private Camera mainCamera1;[Header("对话框UI")][SerializeField]private Image talk; /// <summary> 将世界坐标转为屏幕坐标(UI) </summary>public void OpenWorldToScreen(Vector3 position){Vector3 anchorPos = mainCamera1.WorldToScreenPoint(position);///将输入的三维坐标转换为屏幕坐标,并赋值给UI talktalk.transform.position = anchorPos;}
官网API脚本
Camera.WorldToScreenPoint
public Vector3 WorldToScreenPoint(Vector3 position);
描述
将position
从世界空间变换为屏幕空间。
屏幕空间以像素定义。屏幕的左下角为 (0,0),右上角 为 (pixelWidth,pixelHeight)。z 位置为与摄像机的距离,采用世界单位。
Unity API链接:
Camera-WorldToScreenPoint - Unity 脚本 API
如果觉得《世界坐标转为屏幕坐标(UI坐标)》对你有帮助,请点赞、收藏,并留下你的观点哦!