查看: 1689|回复: 0
打印 上一主题 下一主题

[其他] Unity各种坐标之间的转换

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53520
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2017-11-29 19:09:23 |只看该作者 |倒序浏览

网上搜索了很久看到了一个,看到了一个人说鼠标点是一个世界坐标这个观点是错误的
鼠标垫就是屏幕点
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
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-6-30 02:27 , Processed in 0.058234 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部