Unity3D学习日记1

来源:互联网 发布:傅满洲 知乎 编辑:程序博客网 时间:2024/04/29 11:32

1. Unity3D

解析:Unity3D可以让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合

型游戏开发工具,是一个全面整合的专业游戏引擎。


2. Project(项目)视图

解析:Project(项目)视图主要存放游戏中用到的所有资源文件,常用的资源包括:游戏脚本、预设、材质、动画、

自定义字体、纹理、物理材质和GUI皮肤等,这些资源需要赋予Hierarchy(层次)视图中的某些游戏对象。

(1)Folder:文件夹,用于资源的分类。

(2)Javascript:JavaScript脚本文件。

(3)C# Script:C#脚本文件。

(4)Boo Script:Boo脚本文件。

(5)Shader:设置一个着色器,可以用ShaderLab编写着色器代码。将着色器绑定在材质身上,可直接影响材质的

显示效果。

(6)Prefab:预设,用于场景中游戏对象的克隆。使用预设,可以有效避免过多重复的游戏对象占用内存的情况。

(7)Material:材质,用于为模型添加颜色与贴图。

(8)Animation:游戏动画。

(9)Cubermap:创建具有六个面的贴图资源,用于立方体或天空盒子的贴图。

(10)Lens Flare:添加镜头光晕效果。

(11)Custom Font:自定义字体。

(12)Render Texture:渲染贴图。

(13)Physic Material:物理材质,用于调整对象的物理属性,比如摩擦力和弹力等。

(14)GUI Skin:图形用户界面,可以为多个控件添加样式。


3. Hierarchy(层次)视图  

解析:Hierarchy(层次)视图主要存放游戏场景中具体的游戏对象,比如摄像机、平面贴图、3D贴图、光源、箱

子、球体、胶囊体、模型、平面和地形等。任何一个全新的游戏工程创建完毕后,默认都会创建一个游戏场景并且将

主摄像机添加在该场景的Hierarchy(层次)视图中。

(1)Particle System:粒子效果发射器,可处理游戏中的所有粒子效果。

(2)Camera:游戏摄像机。

(3)GUI Text:3D平面文字。

(4)GUI Texture:平面贴图。

(5)3D Text:3D立体文字。

(6)Directional Light:定向光源,常用于天空向地面定向投射的光源。

(7)Point Light:点光源,在一定范围内照亮的光源。

(8)Spotlight:聚光灯,与点光源类似,但光线只照亮一个圆锥区域。

(9)Area Light:区域灯,可照亮整个选定的区域。

(10)Cube:立方体。

(11)Sphere:球体。

(12)Capsule:胶囊体。

(13)Cylinder:圆柱体。

(14)Plane:平面。

(15)Cloth:布料。

(16)Audio Reverb Zone:音频效果。

(17)Ragdoll:布娃娃效果。

(18)Tree:树模型。

(19)Wind Zone:风向,可影响游戏中的对象。


4. Inspector(检测)视图

解析:Inspector(检测)视图是存放游戏对象、游戏资源、游戏设置以及展示描述信息的地方。

(1)Transform:模型的变化,通过它可动态修改立方体的三维坐标。Position:该立方体的位置。Rotation:该立方

体的旋转角度。Scale:该立方体的缩放比例。

(2)Cube(Mesh Filter):网格过滤器的类型,它可以直接确定该模型的物理性质,这里默认为Cube。

(3)Box Collider:立方体碰撞器,它与刚体紧密结合。

(4)Mesh Render:网格的绘制,它可对网格进行材质的渲染。Cast Shadows:网格是否投射阴影。Receive 

Shadows:网格是否接收阴影。

(5)Materials:设置材质的资源。


5. Scene(场景)视图和Game(游戏)视图

解析:

(1)Scene(场景)视图主要存放游戏中的模型资源。

(2)Game(游戏)视图中显示的内容完全取决于摄像机所照射的部分。


6. 平台设定

解析:

(1)Resolution and Presentation:屏幕的尺寸以及位置等。

(2)Icon:程序的图标。

(3)Splash Image:开机预览图。

(4)Other Settings:其他设定,主要设置一些平台的相关特性。


7. Unity3D高级控件

解析:

Label控件、Button控件、TextField控件、ToolBar控件、Slider控件、ScrollView控件、GroupView控件、Window控

件等。


8. Unity3D摄像机

解析:Unity3D摄像机分为正交摄像机和透视摄像机两种。正交摄像机无论远近它的视口范围永远是固定的,但是透

视摄像机是由原点向外扩散性发射,也就是距离越远它的视口区域也就越大。


9. HTC VIVE

解析:HTC Vive通过以下三个部分致力于给使用者提供沉浸式体验:一个头戴式显示器、两个单手持控制器、一个能

于空间内同时追踪显示器与控制器的定位系统。


10. VR编程

解析:VR编程 = CUDA + DirectX + Unity3D + C# + 3DMAX。


11. Unity3D中的4种坐标系

解析:左手坐标系与右手坐标系,如下所示:


(1)世界坐标系:Unity3D采用的是左手坐标系。在Unity3D中可以使用transform.position来获取场景中一个物体的

世界坐标,通常情况下编辑器中的Inspector窗口是以世界坐标来描述一个3D物体的位置的,除非当一个3D物体存在

父物体的时候,它会以相对坐标来描述其位置。

(2)屏幕坐标系:屏幕坐标是以像素来定义的,它的范围是以左下角为(0, 0),右上角为(Screen.width, 

Screen.height)定义的这样一个矩形。屏幕坐标是一个3D坐标,Z轴是以相机的世界单位来衡量的。屏幕坐标和相机

之间满足:Screen.width=Camera.pixelWidth和Screen.height=Camera.pixelHeight这两个条件。需要说明的是鼠标位

置和手指触摸屏幕都是屏幕坐标。

(3)视图坐标系:视图坐标是标准化后的屏幕坐标,视图坐标是以0到1间的数字来表示的,它的范围是以左下角为

(0, 0),右上角为(1, 1)定义的这样一个矩形。视图坐标是一个3D坐标,Z轴是以相机的世界单位来衡量的。 

(4)GUI坐标系:GUI坐标是指通过OnGUI方法绘制UI时使用的坐标。这个坐标系和屏幕坐标类似,它同样是以像素

来定义的,它的范围是以左上角为(0, 0),右下角为(Screen.width, Screen.height)定义的这样一个矩形,GUI坐标是一

个2D坐标(绝对坐标)。

四种坐标系的转换,如下所示:

(1)世界坐标 -> 屏幕坐标:camera.WorldToScreenPoint(transform.position);

(2)屏幕坐标 -> 视图坐标:camera.ScreenToViewportPoint(Input.GetTouch(0).position);

(3)视图坐标 -> 屏幕坐标:camera.ViewportToScreenPoint();

(4)视图坐标 -> 世界坐标:camera.ViewportToWorldPoint();

说明:camera为场景中的camera对象。


12. VR关键技术

解析:VR关键技术的发展以虚拟环境的表现,人与虚拟环境的交互为重点。虚拟环境的表现,如下所示:

(1)360 Video:“忠实记录”,全景拍摄,固定用户位置的中心视角,最先成熟在线商用。

(2)自由视角视频:“虚实结合”,环绕拍摄和建模计算结合,可改变用户位置的自由视角,实际视角和虚拟视角结

合,有实验产品,未规模商用。

(3)计算机图像学:“无中生有”,建模计算渲染虚拟实体,计算量大,目前以本地应用为主。

(4)光场:“以假乱真”,记录光线强度和角度信息,信息量远大于传统媒体,出现部分试验性产品。

人与虚拟环境的交互包括位置固定,动作捕捉等关键技术。如下所示:

(1)位置定位实现用户和虚拟环境的融合。

(2)动作捕捉建立用户和虚拟环境之间的连接。


13. 变换工具

解析:

(1)手柄工具(快捷键Q):按住左键拖动视角。

(2)移动工具(快捷键W):首先选择物体,物体会出现方向轴,拖动方向轴移动物体。

(3)旋转工具(快捷键E):首先选择物体,物体会出现转转轴,拖动旋转轴旋转物体。

(4)缩放工具(快捷键R):首先选择物体,物体会出现缩放方向轴,拖动可缩放物体大小。


14. 预设(Prefab) 

解析:预设(Prefab)是一种资源 - 存储在工程视图(Project View)中可重复使用的游戏对象(GameObject)。预

设(Prefabs)可放入到多个场景中,且每个场景可使用多次。向场景添加一个预设(Prefab)时,就会创建它的一

个实例。所有预设(Prefab)实例都链接到原始预设(Prefab),实质上是原始预设的克隆。不管工程中有多少个实

例,对预设(Prefab)作出任何更改时,将会看到这些更改应用于所有实例。


参考文献:

[1] 《Unity3D游戏开发

[2] 说说Unity3D里的各种坐标系:http://blog.csdn.net/kingsea168/article/details/49611285

[3] Unity3D四种坐标系:http://www.360doc.com/content/14/0122/16/12282510_347142356.shtml

[4] 3D和2D游戏开发技术里的坐标系总结:http://blog.csdn.net/kafeidev/article/details/42780009

1 0