Unity坐标系详解

1. World Space(世界坐标系):

  我们在场景中添加的物体(如:Cube),他们都是以世界坐标显示在场景中。transform.position 获取的便是这个  坐标数值。

2. Scene Space(屏幕坐标系):

  以像素来定义的,一屏幕的左下角为(0,0)点,右上角为(Screen.with,Screen.height),Z轴的位置是以相机的世界单位来衡量的(个人感觉是世界坐标的Z值)。

  2.1 鼠标位置属于屏幕坐标,Input.mousePosition 可以获得该位置坐标。

  2.2 手指触摸屏幕也为屏幕坐标,Input.GetTouch(0).position 可以获得单个手指触摸屏幕的坐标。

  2.3 当有多个手指触摸屏幕时,Input.GetTouch(0).position会获取到多个点击点的中心位置。

  http://docs.unity3d.com/Documentation/Manual/Input.html

3. ViewPort Space(视口坐标):

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

4.绘制GUI界面的坐标系(UI坐标):

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

【坐标系的相互转换】

  1. World Space --> Screen Space: camera.WorldToScreenPoint(transform.position);

  2. Screen Space --> ViewPort Space: camera.ScreenToViewportPoint(Input.mousePosition);

  3. ViewPort Space-->Screen Space: camera.ViewportToScreenPoint();

  4. ViewPort Space-->World Space: camera.ViewportToWorldPoint();

参考:https://www.cnblogs.com/tekkaman/p/3809409.html

时间: 2024-11-09 09:37:00

Unity坐标系详解的相关文章

Cocos2d-x 3.0坐标系详解(转载)

Cocos2d-x 3.0坐标系详解Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系.笛卡尔坐标系笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系.屏幕坐标系和Cocos2d坐标系标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和OpenGL相同的坐标系.iOS, Android, Windows Phone等在开发应用时使用的是标准屏幕坐标系,原点为屏幕左上角,x向右,y向下.Cocos2d坐标系和Ope

Unity Update 详解

0x01:简介 Unity的脚本继承了Monobehaviour类,在脚本中定义函数: void FixedUpdate(){} void Update(){} void LateUpdate(){} 脚本如果是激活的,这三个函数会被上层逻辑每帧调用,FixedUpdate调用的次数和fixedTime有关,后面详细介绍,Update和LateUpdate每帧调用一次. 0x02:实现 一般游戏流程都类似下面代码示例: /*************************************

Cocos2d-x 3.0坐标系详解

Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系. 笛卡尔坐标系 笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系. 屏幕坐标系和Cocos2d坐标系 标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和OpenGL相同的坐标系. iOS, Android, Windows Phone等在开发应用时使用的是标准屏幕坐标系,原点为屏幕左上角,x向右,y向下. Cocos2d坐标系和OpenGL坐标系一样,原点为

ocos2d-x 3.0坐标系详解--透彻篇 ---- convertToWorldSpace:把基于当前节点的本地坐标系下的坐标转换到世界坐标系中。

convertToWorldSpace:把基于当前节点的本地坐标系下的坐标转换到世界坐标系中.重点说明:基于...   不一定要是真实的,  convertToWorldSpace 的结果也只是一个新的位置, 这个位置一般都没有什么实际意义的,大部分都是用在碰撞检测 ,一个虚拟的新位置(主要用在子弹和敌人不在同一层的情况,把子弹和敌人转换到同一节点下的本地坐标系进行位置比较,方便进行碰撞检测) 为什么官方文档,在这个文档描叙的时候,写的是基于当前节点下的坐标系....   中文还是值得深入的推敲

Unity Coroutine详解(一)

Unity 中协程是个非常强大的功能,其作用主要是用于游戏中的延时调用或者执行一连串的有时间间隔的事件流程,例如剧情对话等.简单总结了几点协程相关的知识点,旨在加深记忆,同时为初学者解惑. 1.协程.进程与线程 这是个面试中经常会问到的问题:协程.进程与线程的区别在哪? 说到协程,我们首先回顾以下线程与进程这两个概念.在操作系统(os)级别,有进程(process)和线程(thread)两个我们看不到但又实际存在的“东西”,这两个东西都是用来模拟“并行”的,写操作系统的程序员通过用一定的策略给不

地球经纬度坐标系详解

一.地球模型 地球是一个近似椭球体,测绘时用椭球模型逼近,模型如下图: 赤道是一个半径为a的近似圆,任一圈经线是一个半径为b的近似圆.a称为椭球的长轴半径,b称为椭球的短轴半径. a≍6378.137千米,b≍6356.752千米.(实际上,a也不是恒定的,最长处和最短处相差72米,b的最长处和最短处相差42米,算很小了)

Unity灯光详解

Lights will bring personality and flavor to your game. You use lights to illuminate the scenes and objects to create the perfect visual mood. Lights can be used to simulate the sun, burning match light, flashlights, gun-fire, or explosions, just to n

[Unity实战]详解换装系统(四)

关于换装系统基本上就是前三篇文章所说的那样了,这里说一下一些琐碎的.. 1.在网游中,推荐将各个部位打包成assetbundle,比如一个男性的角色,将他的基础骨骼打进一个包,再将身体各个部分的模型分别打包.如果一个模型由头.脸.身体.手臂.脚五个部分组成,那么打包后将会有六个资源包,分别是基础骨骼.头.脸.身体.手臂.脚. 2.合并mesh要注意的地方: 来源模型与材质数量必须相对应,否则模型的贴图将会变得不正常,也就是说如果裤子的 material 有两个,其他部位的 materail只有一

[Unity实战]详解换装系统(三)

在阅读本文章之前,本人强烈建议你先看看本系列的前两篇文章,对换装系统有一些了解后再继续! 在上一篇文章中,运行之后是这样的: 我们的target上挂上各种类型的mesh,而每一个mesh上都有一个Skinned Mesh Renderer组件,这无疑会增加运算量,根据官方demo的指引,我们应该合并mesh,这样target上就只有一个Skinned Mesh Renderer组件,从而达到优化的目的! 本人对上一篇文章的代码进行了一些修改,主要是添加了6处新的代码,并对不需要的代码进行了注释(