【Unity】5.1 3D坐标系基础知识

时间:2022-02-20 15:39:26

分类:Unity、C#、VS2015

创建日期:2016-04-20

一、简介

在虚拟的游戏世界中,与3D有关的数学知识决定了游戏引擎如何计算和模拟出开发者以及玩家看到的每一帧画面。学习或者回想一下基础的3D有关的数学知识,可以帮助开发者对游戏引擎产生更深刻的了解。

二、坐标系

在游戏开发中,经常会用到不同的坐标系来描述空间中的位置,常用的坐标系有:

1、世界坐标系(World)

用于描述游戏场景内所有物体位置和方向的基准,也称为全局坐标系。

2、局部坐标系(Local)

每个物体都有其独立的物体坐标系,并且随物体进行相同的移动或者旋转,也叫模型坐标系或物体坐标系。

网格模型(mesh)保存的顶点坐标均为局部坐标系下的坐标。

3、相机坐标系(Camera)

根据观察位置和方向建立的坐标系。使用坐标系可以方便地判断物体是否在相机前方以及物体之间的先后遮挡顺序等。

4、屏幕坐标系(Screen)

这是建立在屏幕上的二维坐标系,用来描述像素在屏幕上的位置。即:

屏幕左上角为(0,0);

X轴向右为正方向(从左到右);

Y轴向下为正方向(从上到下)。

三、Unity中不同坐标系之间的转换

在Unity中:Transform组件的以下方法可进行坐标系转换:

Transform.TransformPoint方法:将坐标点从局部坐标系转换到世界坐标系。

Transform.InverseTransformPont方法:将坐标点从局部坐标系转换到世界坐标系。

Transform.TransformDirection和Transform.InverseTransformDirection:用于对向量在物体坐标系和世界坐标系之间进行转换。