Unity引擎-菜单栏工具栏详解与Unity坐标系-02

一、菜单栏常用功能

菜单栏是Unity操作界面的重要组成部分之一,其主要用于汇集分散的功能与板块,并且其友好的设计能够使游戏开发者以较快的速度查找到相应的功能内容。

Unity 3D 菜单栏包含 File(文件)、Edit(编辑)、Assets(资源)、GameObject(游戏对象)、Component(组件)、Window(窗口)和 Help(帮助)7 组菜单,如下图所示:


菜单栏

图中红色框内的是外部资源导入后的结果,也就是说这个菜单栏是可以通过自定义去增加新的选项的。

以下内容对应版本为:Unity2018.3.9f1。版本不一可能菜单栏显示内容不一样,不过问题不大,都是涵盖之前内容。新增的也会详细解释。

1.1 File

File 菜单主要用于新建、打开或者保存场景项目,同时也可以新建、打开或者保存项目,以及打包项目发布时的一些相关设置,具体功能及快捷键如下表所示:


菜单栏-File

1.2 Edit

Edit 菜单主要用于针对场景中的具体对象的基本操作(如撤销、重做、复制、粘贴)以及编辑器和项目整体的相关设置,具体功能及快捷键如下表所示:


菜单栏-Edit

1.3 Assets

Assets 菜单主要用于针对资源的创建、打开、删除以及导入导出、同步更新等相关的功能,具体功能及快捷键如下表所示:


菜单栏-Assets

1.4 GameObject

GameObject 菜单主要用于创建、设置游戏对象,具体功能及快捷键如下表所示:


菜单栏-GameObject

1.5 Component

Component 菜单主要用于在项目制作过程中添加一系列的各种各样的组件或属性,具体功能及快捷键如下表所示:


菜单栏-Compoment

1.6 Window

Window 菜单主要用于在项目制作过程中显示布局、资源商店、资源管理以及场景调试等窗口,具体功能及快捷键如下表所示:


菜单栏-Window

1.7 Help

Help 菜单主要用于帮助用户跳转到Unity相关的官方学习服务平台,快速学习和掌握 Unity ,显示当前版本信息,并设有问题反馈机制,具体功能及快捷键如下表所示:


菜单栏-Help

二、工具栏

在当前版本的Unity中,工具栏上显示的总共有18种,工具栏的作用主要是把用户会经常用的一些操作按钮放在上面,这样操作起来快速方便。如下所示:


工具栏
工具栏-按钮

三、2D和3D笛卡尔坐标系

在数学里,笛卡尔坐标系 (Cartesian coordinate system),亦称直角坐标系,是一种正交坐标系。

3.1 2D笛卡尔坐标系

二维的直角坐标系是由两条相互垂直、相交于原点的数线构成的。在平面内,任何一点的坐标是根据数轴上对应的点的坐标设定的。
定义:
1、每个2D笛卡尔坐标系都有一个特殊的点,称为原点(0,0)它是坐标系的中心。
2、每个2D笛卡尔坐标系都有两条过原点的直线向两边无限延伸,称为轴,两个轴互相垂直。

坐标系是一个精确定位点的框架。为了在笛卡尔坐标系中定位点,引入了笛卡尔坐标的概念。在2D平面中,两个数(x,y)就可以定义一个点。坐标的每个分量都表明了该点与原点之间的距离和方位,每个分量都是到相应轴的有符号距离。如下图所示,x分量表示该点到y轴的有符号距离,同样y分量表示该点到x轴的有符号距离。“有符号距离”指在某个方向上距离为正,而在相反方向为负。


2D直角坐标系

3.2 3D笛卡尔坐标系

3D坐标系表示三维空间系,3D坐标系存在三个轴,比2D坐标系多了一个Z轴,3个轴相互垂直,也就是每个轴都有垂直于其他两个轴。在3D坐标系中点位需要3个数:x、y、z。


3D坐标系

左手坐标系、右手坐标系:
3d坐标系存在两种完全不同的坐标系,左手坐标系和右手坐标系。如果属于相同的坐标系,可以通过旋转来重合,否则是不可以重合的。两个坐标系之间没有好坏,之是应用与不懂的场景。 计算机中使用左手坐标系,线性代数中使用右手坐标系。

左、右手坐标系可以相互转换,最简单的方法时只翻转一个轴的符号。注意如果同时翻转两个轴的符号,结果和不翻转是一样的。
左手坐标系和右手坐标系没有好坏之分,在不同的研究领域和不同的背景下,人们会选择不会的坐标系。

四、 Unity坐标系

4.1 Unity的几种坐标系

Unity是左手坐标系

世界坐标系:
我们在场景中添加物体(如:Cube),他们都是以世界坐标显示在场景中的。transform.position可以获得该位置坐标。

屏幕坐标系:
以像素来定义的,以屏幕的左下角为(0,0)点,右上角为(Screen.width,Screen.height),Z的位置是以相机的世界单位来衡量的。注:鼠标位置坐标属于屏幕坐标,Input.mousePosition可以获得该位置坐标,手指触摸屏幕也为屏幕坐标,Input.GetTouch(0).position可以获得单个手指触摸屏幕坐标。

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

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

4.2 坐标转换

世界坐标→屏幕坐标:camera.WorldToScreenPoint(transform.position);这样可以将世界坐标转换为屏幕坐标。其中camera为场景中的camera对象。

屏幕坐标→视口坐标:camera.ScreenToViewportPoint(Input.GetTouch(0).position);这样可以将屏幕坐标转换为视口坐标。其中camera为场景中的camera对象。

视口坐标→屏幕坐标:camera.ViewportToScreenPoint();

视口坐标→世界坐标:camera.ViewportToWorldPoint();

本次讲解就到这里,有关技术问题请小伙伴们添加QQ群:941928511,大家一起探讨!
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。