下面展示一下上一篇说的两种实现方式打包文件在不同分辨率下的效果
1.WorldToScreenPoint
1920 * 1080

800 * 600

2.WorldToViewportPoint
1920 * 1080

800 * 600

总结
可以看到四种情况全部都显示正确,我们再看一下原来的代码
public Vector3 GetScreenPosition(GameObject target)
{
Vector3 viewportPos = Camera.main.WorldToViewportPoint(target.transform.position);
RectTransform canvasRtm = parentCanvas.GetComponent<RectTransform>

本文详细介绍了在Unity中如何使用WorldToScreenPoint和WorldToViewportPoint方法将世界坐标转换为屏幕坐标,分别展示了在不同分辨率下的效果。作者指出,WorldToScreenPoint得到的坐标需要根据当前分辨率进行转换,而WorldToViewportPoint得到的是比例坐标,直接乘以分辨率即可。同时,文章提到在获取真实分辨率时,应通过RectTransform组件获取Canvas的尺寸。总结了转换过程中的常见错误和解决方法,强调了UI坐标原点在中心的特性,并提供了相关博客链接供进一步阅读。

1万+

被折叠的 条评论
为什么被折叠?



