5327人加入学习
(15人评价)
3D数学基础:Unity游戏开发

制作于2018.2.4,基于Unity2017.2。

价格 ¥ 144.00
该课程属于 Unity - A计划(永久有效期) 请加入后再学习

* 屏幕坐标系 Screen Space

** 标准定义:Screenspace is defined in pixels. The bottom-left of the screen is (0,0); the right-top is (pixelWidth,pixelHeight). The z position is in world units from the camera.

*** 以像素为单位

*** 原点左下角,右上角宽度screen.width和高度screen.height

** unity实现

*** 原点左下角,右上角宽度screen.width和高度screen.

**** 注意:Event.mousePosition原点在左上角,而不是坐下

height

*** 鼠标位置坐标属于屏幕坐标,input.mouseposition,是一个**三维向量**,z始终为0,可能是为了性能,不处理z。如果要精确,可以理解为z在视锥近平面cam.nearClipPlane。

*** 将世界坐标转换为屏幕坐标时,*Z是以世界单位衡量的到相机的距离*:摄像机对游戏世界的渲染范围是一个平截头体,渲染边界是一个矩形,用与near clippingplane或者far clippingplane平行的平面截取这个平截头体,可以获得无数个平行的矩形面,也就是我们看到的屏幕矩形。离摄像机越远,矩形越大,离摄像机越近,矩形越小。所以,同样大小的物体,随着离摄像机越来越远,相对于对应屏幕矩形就越来越小,所看起来就越来越小。在屏幕上,关键在于这个点在哪个截面上,也就是说,关键在于这个截面离摄像机有多远!*参数中的z坐标的作用就是:用来表示上述平面离摄像机的距离*。

**** Input.mouseposition移动到屏幕之外也会有值

*** 手指触摸屏幕也为屏幕坐标, 单手指input.gettouch(0).position,是一个**二维向量**

 

* 视口坐标系 ViewPort Space

** 标准定义:Viewport space is normalized and relative to the camera. The bottom-left of the viewport is (0,0); the top-right is (1,1). The z position is in world units from the camera.

*** 将屏幕坐标系单位化

*** 左下角 (0,0),右上角 (1,1)

** unity实现

*** 无法直接得到

*** 可以将屏幕坐标->视口坐标,或反之

*** 可以将世界坐标->视口坐标,或反之

*** 左下角 (0,0),右上角 (1,1)

*** 如前所述,当采集鼠标位置时,z不做处理,此时,z始终为0

[展开全文]

视口坐标系就是屏幕坐标系的单位化,固定左下角原点为(0,0),右上角为(1,1)

[展开全文]