unity 世界坐标 屏幕坐标和ngui坐标转换

本文介绍了Unity中3D物体使用世界坐标表示,并详细阐述了Unity屏幕坐标的特性和NGUI坐标的两种类型:Pixel Perfect和FixedSize。文章列举了在不同 Scaling Style 下屏幕坐标转NGUI坐标的计算方法,包括直接像素偏移和考虑坐标系缩放值的转换。此外,还提及了Unity内置的WorldToScreenPoint和ScreenToWorldPoint方法用于世界坐标和屏幕坐标的转换。
摘要由CSDN通过智能技术生成

unity 中的3d物体都是以世界坐标显示在场景中的,通过transform.position获取。

unity 屏幕坐标(0.0)点在左下角以像素为单位,屏幕宽高分别是Screen.width, Screen.height。

ngui坐标(0.0)点在屏幕中心,通过两种方式缩放Pixel Perfect 和Fixed Size。


屏幕坐标和ngui坐标有两种转换方式

1.当Scaling Style 是 PixelPerfect 时仅计算像素的偏移即可

t.localPosition = (Input.mousePosition - new Vector3(Screen.width / 2, Screen.height / 2, 0))

2.当Scaling Style 是 Fixed Size时还需计算坐标系的缩放值

float rate = System.Convert.ToSingle(uir.manualHeight) / Screen.height;
t.localPosition = (Input.mousePosition - new Vector3(Screen.width / 2, Screen.height / 2, 0)) * rate;


当然unity也提供了两个转换方法

世界坐标和屏幕坐标转换通过screenpos = Camera.main.WorldToScreenPoint(worldpos)

屏幕坐标和ngui坐标转换通过trans.position = UICamera.curre

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值