zoukankan      html  css  js  c++  java
  • Unity 坐标 转换 详解 World世界坐标 Screen屏幕坐标 View视口坐标 GUI坐标 NGUI坐标 localPosition相对父级坐标

    在制作游戏中我们经常会遇到这样一个需求

    在人物模型的上面显示 名字、称号 一类的文字或者图片 如下图

    人物模型属于是Camera1  

    UI Title信息属于NGUI Camera2

    如下图

    这时候我们就要用到坐标转换了 确定UI Title 的世界坐标

    代码如下:

    Transform charater = null;//角色Transform
    Transform TitleLabel = null;//Title Label Transform
    
    Camera camera1 = Camera.main;//照射模型Camera
    Camera camera2 = UICamera.currentCamera;//NGUI Camera
    
    Vector3 pos = camera1.WorldToScreenPoint(charater.position);//Camera1的世界坐标转为屏幕坐标
    pos.z = 0;//不需要 制为0
    
    Vector3 pos2 = camera2.ScreenToWorldPoint(pos);//屏幕坐标转为camera2的世界坐标
    
    TitleLabel.position = pos2;//设置TitleLabel的世界坐标

    想知道为什么 我们一起来详细的了解一下Unity 坐标的知识

    查看Unity圣典 TransfromCamera 组件

    Transfrom 组件有如下图2个变量

    Camera 组件有如下图6个函数

    看完上面翻译的信息 是不是对于 世界坐标 屏幕坐标 视口坐标 不是很理解 下面我们来详细介绍一下这些坐标

    WorldSpace(世界坐标):

    游戏场景原点世界坐标为(0,0,0) 

    获取和设置代码如下:

    transform.position = Vector3.zero;//设置transform的世界坐标为原点(0,0,0)
    
    Vector3 vector3 = transform.position;//获得transform的世界坐标给vector3

    ScreenSpace(屏幕坐标):

    Screen Space是以像素来定义的 左下角为(0,0)   右上角为(Screen.width,Screen.height)  Z的位置是以相机的世界单位来衡量的。

    例如场景分辨率1024x768,如果屏幕被缩小至100x100,那么点击右上角是100x100,而不是分辨率的1024x768。

    鼠标的坐标 单个手指触摸屏幕坐标 都为屏幕坐标

    Debug.Log(Input.mousePosition);//鼠标的坐标
    
    Debug.Log(Input.GetTouch(0).position);//单个手指触摸屏幕坐标

    ViewPortSpace(视口坐标):

    视口坐标是标准的和相对于相机的。相机的左下角为(0,0)点,右上角为(1,1)点,Z的位置是以相机的世界单位来衡量的。

    GUI坐标

    这个坐标系与屏幕坐标系相似,不同的是该坐标系以屏幕的左上角为(0,0)点,右下角为(Screen.width,Screen.height)。 

    NGUI坐标

    其实没有什么NGUI坐标

    要设置NGUI坐标 需要获得UICamera.currentCamera来转换坐标

    了解了上面的知识 相信你利用 Camera 的那6个函数 可以随便的转换坐标了。

    完结!

  • 相关阅读:
    Java知识积累3-XML的DOM解析修改和删除方法
    Java知识积累-XML的DOM解析修改和删除方法
    Java知识积累2-StringReverse实现文字(单词)倒叙输出
    Java知识积累1-StringAlign实现文字居中左右对齐
    String中具有的方法
    有17个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下 的是原来第几号的那位
    编写一个程序,求出整数数组中最小元素的下标。如果这样的元素个数大于1,则返回下标最小的数的下标。
    初识
    关于点击跳转页面
    sql存储过程
  • 原文地址:https://www.cnblogs.com/zouqiang/p/6858411.html
Copyright © 2011-2022 走看看