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
- Unity3D学习日记1
- Unity3D学习日记(三)贝塞尔曲线
- 我的Unity3D学习日记-01
- 我的Unity3D学习日记-02
- unity3d学习日记:接入UnityAds平台广告
- Unity3D手游开发日记(1)
- Unity3D学习日记(一)使用UGUI制作虚拟摇杆
- Unity3D 学习日记(四)生成不重复的随机数
- Unity3D 学习日记(六) 制作简单的小地图
- 我的Unity3D学习日记-03(Input,GameObject,Vector3)
- Unity3D学习日记(十) iOS获取局域网的IP
- 我的Unity3D学习日记-05(官方实例2Droguelike)
- 我的Unity3D学习日记-06(自己动手制作FlappyBird)
- Unity3D小白学习日记(03):Unity3D 常用技巧整理(大量干货!)
- JSP学习日记 - 1
- Hibernate学习日记(1)
- arm学习日记(1)
- 学习.net日记1
- java使用https post发送json数据
- Hadoop - HDFS API 对文件进行操作
- Android 动画之属性动画ValueAnimator
- canvas无法使用rem单位的解决方案
- gitlab安装与配置
- Unity3D学习日记1
- Android控件晃动效果实现
- Java简单操作mysql数据库代码存档+处理中文乱码问题
- $.ajax()jquery中的ajax方法参数
- TextView伸缩效果
- 在Android Studio中进行单元测试和UI测试
- Android Studio关于SVN的相关配置简介
- 设计模式(七)适配器模式
- HTTP和HTTPS详解