Unity世界坐标转换屏幕坐标(测试)

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

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

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值