zoukankan      html  css  js  c++  java
  • unity------各种坐标理解

    本人学生一枚,刚接触Unity3D,若有理解得不对的地方,还望各路大神不吝赐教~

           unity中的坐标系统包括世界坐标(World Space),屏幕坐标(Screen Space),视口坐标(View Space)以及GUI坐标系统。

           世界坐标(World Space)

           场景中添加的对象,它们是以世界坐标显示在场景中,可以通过代码transform.position获得该对象的世界坐标,那么我们在检视面板(Inspector)中看到的Position的值在对象没有父物体时,这个值和transform.position得到的结果一致的,若该对象有父物体,那么检视面板中(Inspector)看到的即为相对于父物体的相对坐标位置,这样通过transform.position得到的值自然就不一样了。总之,通过transform.position得到的都是对象的世界坐标。在对象存在父物体的情况下,若想要得到该对象在检视面板(Inspector)中的值,可以通过transform.Localposition得到。

          屏幕坐标(Screen Space)

          屏幕坐标是通过像素来定义的,屏幕坐标的坐标系以屏幕左下角为(0,0)点,右上角为(Screen.width,Screen.height),屏幕坐标为3维坐标,z的大小由相机的世界位置来定义。通过Input.mousePosition得到的是屏幕坐标,屏幕坐标的数值只与屏幕的大小有关,跟分辨率没有关系。

          视口坐标(View Space)

         视口坐标标准化后的屏幕坐标,它的坐标原点同样是左下角为(0,0)点,只不过右上角为(1,1)点,若对象处在场景的正中间,则对象的视口坐标为(0.5,0.5),与屏幕坐标一样,视口坐标也是一个3维的,它的z方向的数值由相机的世界位置来决定。

          GUI坐标系

          GUI坐标系主要在通过OnGUI方法绘制屏幕UI界面时运用较多,GUI坐标系是一个2维坐标系,与屏幕空间类似,所表示的范围也是整个屏幕空间范围,只不过GUI坐标的坐标原点在左上角,即左上角为(0,0)点,右下角为(Screen.width,Screen.height)。

           坐标之间的转换

           世界坐标通过transform.position获得

           局部坐标通过transform.Localposition获得

           世界坐标与屏幕坐标之间的转换

            Camera.main.ScreenToWorldPoint(Vector 3)  ——屏幕坐标转换到世界坐标,其中的main为主相机,当然也可以为场景中其他相机

            Camera.main.WorldToScreenPoint(transform.position)——世界坐标转换到屏幕坐标 ,其中的main为主相机,当然也可以为场景中其他相机。这里附带一个鼠标拖拽物体的代码,其中主要就是世界坐标与屏幕坐标之间转换

  • 相关阅读:
    带色彩恢复的多尺度视网膜增强算法(MSRCR)的原理、实现及应用。
    索引图像的那些事啊
    调整图像 自动对比度、自动色阶算法
    图像处理界双线性插值算法的优化
    共享收集的图像处理方面的一些资源和网站。
    Wellner 自适应阈值二值化算法
    基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
    VB6.0用GDI+保存图像为BMP\JPG\PNG\GIF格式终结版。
    关于.net中获取图像缩略图的函数GetThumbnailImage的一些认识。
    限制对比度自适应直方图均衡化算法原理、实现及效果
  • 原文地址:https://www.cnblogs.com/w-wfy/p/7297371.html
Copyright © 2011-2022 走看看