纳金网

标题: Unity各种坐标之间的转换 [打印本页]

作者: 烟雨    时间: 2017-11-29 19:09
标题: Unity各种坐标之间的转换

网上搜索了很久看到了一个,看到了一个人说鼠标点是一个世界坐标这个观点是错误的
鼠标垫就是屏幕点
UICamera.currentCamera.ScreenToWorldPoint(pos); 这个点的返回值就是屏幕上鼠标点击的点,
直接在这个坐标位置生成图片就可以

下标是源博客
Unity程序沉淀1-NGUI,世界坐标,屏幕坐标转换 (2016-06-24 14:45:19)

转载

标签: unity ngui
分类: 游戏制作
正文开始
其实这个网上教程已经很多,但是我还是需要发布这篇博文以作沉淀之用
1.世界坐标转屏幕坐标
假定世界有一点坐标为pos,其转换为屏幕坐标为:
Camera.main.WorldToScreenPoint(pos);
2.屏幕坐标转世界坐标
假定屏幕有一点坐标为pos,其转换为世界坐标为:
Camera.main.ScreenToWorldPoint(pos);
3.屏幕坐标转NGUI坐标
假定屏幕有一点坐标为pos,其转换为NGUI坐标为:
UICamera.currentCamera.ScreenToWorldPoint(pos);
这个需要注意的是,得到的坐标为全球坐标,而不是本地坐标,所以NGUI的组件设置位置需要设置position而不是localPosition,
4.NGUI坐标转屏幕坐标
假定NGUI有一点坐标为pos,其转换为NGUI坐标为:
UICamera.currentCamera.WorldToScreenPoint(pos);
5.世界坐标转NGUI坐标
假定屏幕有一点世界为pos,其转换为NGUI坐标为:
需要先把世界坐标转为屏幕坐标
Vector3 screenPos=Camera.main.WorldToScreenPoint(pos);
然后再把屏幕坐标转NGUI坐标
UICamera.currentCamera.ScreenToWorldPoint(screenPos);

文章来源:
http://www.manew.com/blog-252311-43318.html





欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5