Stealth视频教程学习笔记(第一章)
本文是对Unity官方视频教程Stealth的学习笔记。在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上。本文将分别对各个视频进行学习总结,提炼出其中的知识点和思路思想。
视频地址在(http://www.youku.com/playlist_show/id_23389553.html),是一个Stealth的专辑,这里只放上第一个视频,其它的大家在上面的链接中慢慢看吧。
第二章有一个视频是FLV格式的,我没法把字幕嵌入其中,所以优酷上就没有传。
PS:有需要全部24个高清视频+字幕的同学,麻烦支持一下在本文的最后扫描二维码向我捐赠100元并留下你的Email。
101 - Project Overview
简介本套视频1-4章的内容。
设置游戏系统、报警系统 |
设置游戏角色的多种动画、交互 |
设置动态对象(门、钥匙、电梯等) |
用状态机给敌人添加AI |
102 - Game Setup and Lighting
将某个gameobject设置为Static,那么它在场景中就不会移动,并且因而可以应用光照贴图(light map)。
所谓Lightmap就是指在三维软件里事先打好光,然后渲染把场景各表面的光照输出到贴图上,最后又通过引擎贴到场景上,这样就使物体有了光照的感觉,但凡是做三维的都明白,渲染时场景没有打灯光渲染出来就是漆黑一团。烘焙一张lightmap的时间非常长,复杂的场景花上几个小时是很常见的。
为某些gameobject指定其所在的层(Layer),然后你可以指定一个灯光(Ligght)是否对此层的gameobject有效。就是说,同一个场景中,gameobject可以分到不同的层里,灯光可以只对其中某些层(里的gameobject)生效(在灯光的Culling Mask里指定要照射到的层)。
Deferred Lighting即延时光照,是有着最高保真度的光照和阴影的渲染路径。如果你有很多实时灯光,最好是使用延时光照。它需要一定水平的硬件支持,仅在 Unity Pro可用,移动设备上不支持。
游戏引擎中三大及时光照渲染方法介绍(以unity3d为例)参考这里(http://wenku.baidu.com/link?url=sdZ2YwCj8Y7T9GLINjxNgGkQeLSqyQd61Gp4kzngdSihYm_yNHI0Pe-molyQY1XsnUwvhZDzdMnCcV3uaB6I7q2K5HKXE3M0oQWu_0xQ4Z_)
可以通过选中或取消选中Scene上的灯光图标来开关场景中的灯光。关闭灯光会降低对系统资源的消耗。
把一个Light对象的Lightmapping属性设置为BakedOnly,此Light就不会进行实时渲染,从而降低资源消耗。
103 - Alarm Lights
在light.intensity = Mathf.Lerp(light.intensity, targetIntensity, fadeSpeed * Time.deltaTime);中,Mathf.Lerp()函数用于产生渐变效果。但是当light.intensity和targetIntensity十分接近时,这种渐变会十分缓慢,所以最后要通过检测这两个变量的值是否足够小来结束这个渐变过程。
104 - Tag Management
在Unity中tag的最常见用法是用来在脚本中查找某个(某些)gameobject。脚本中的tag是一个字符串,为了避免拼写错误,建议将项目中的每个tag都用一个const string的变量表示,并放到一个class中便于管理。
将Unity项目中的所有脚本都放到Scripts文件夹下并进行良好组织,是一个很好的习惯。
105 - Screen Fader
用GUI Texture可以实现场景的平滑切换。给GUI Texture一个黑色的贴图,通过使其color在Color.clear和Color.black之间平滑变换即可。
106 - Game Controller
游戏控制器可用于多种情形,例如用于计算得分,用于持有某些公共资源的引用。
107 - CCTV Cameras
LightProbe是对LightMapping的一个补充功能,可以让动态物体在烘焙好的场景里面受到光的照射效果。LightProbe的用法就是在LightMapping的基础上加上了一些探头的点来记录光源的信息。探头越多,效果就越明显。
如果想要使一个网格接受来自探测器系统的光照,只需要将MeshRenderer组件上个LightProbes选项勾选就可以。
更多内容可参考(http://liweizhaolili.blog.163.com/blog/static/16230744201371721511106/)