版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010476348/article/details/78284443
public static Vector3 WorldToUI(GameObject a, Vector3 pos)
{
CanvasScaler scaler = a.GetComponentInChildren<CanvasScaler>();
Canvas canv = a.GetComponentInChildren<Canvas>();
float resolutionX = scaler.referenceResolution.x;
float resolutionY = scaler.referenceResolution.y;
Vector3 viewportPos = canv.worldCamera.WorldToViewportPoint(pos);
Vector3 uiPos = new Vector3(viewportPos.x * resolutionX - resolutionX * 0.5f,
viewportPos.y * resolutionY - resolutionY * 0.5f, 0);
return uiPos;
}
返回物体的自身坐标