U3D教案1范文_第1页
U3D教案1范文_第2页
U3D教案1范文_第3页
U3D教案1范文_第4页
U3D教案1范文_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

U3D教案1范文 Unity3d提升班第二次课彭玉元xx.9.131.第一次课回顾a)用U3D的树形生成器设计自己的树。 注意草也是一样的制作方法,注意以后树叶、草等贴图全部都用PSD,以保持物体的可修改性)。 另外就是实验课上,同学们做的树叶或草,都有白边,效果不是很理想。 具体解决方法为在PS中抠图,然后使用“图层”菜单下的“修边”命令,配合选择工具多次使用,去掉白边,然后从U3D的官网上下载一个PS动作文件AlphaUtility.atn,执行相应动作文件,得到所需贴图。 b)学习法线贴图的制作和使用。 c)了解部分Shader的使用(Bump diffuse、Bump specular、Decal、Diffuse、Diffuse Detail、Specular)2.常用材质的应用1.制作半透明或者全透明的物体使用自带的Transparent家族中的Shader,会带有RGBA四个通道,注意A通道里,是在PS中用通道来进行透明度控制,白色完全不透明,黑色完全透明。 2.制作汽车玻璃等没有折射又透明有反射的材质使用外部安装的car/GlassReflect.shader(注意学会CubeMap的制作)3.制作表面光滑,环境反射强的物体使用自带的SHADER即可,Reflective里的各种SHADER。 参考网址blog.csdn./cloud_zero/article/details/6105028.web3d./bbs/index.php forum.unity3d./ShaderLab4.汽车实例演示。 5.水下模糊效果。 a)先绘制地型。 b)加入Water4Example(Advanced)到地型中。 c)在水中创建一个Cube,调整到水下合适位置。 d)在“Inspector(检视面板)”中,将Cube对象命名为“WaterColler”,并点击面板上的Tag后的下拉框,从弹出的下拉列表中选择AddTag命令,添加一个“WaterColler”。 添加完后从下拉列表中选择新增加的Tag。 (Tag有点类似FLASH中的实例名称,但是这个可以重复,可以将多个物体设为同一个Tag,然后通过程序来一起控制这些物体,有点类似群组。 )e)在Cube的检视面板中,勾上Is Trigger,这个设置是让物体变为碰撞触发对象,而不是一个不可以穿越的碰撞体,去掉Mesh Render的复选框,不让它显示。 f)创建一个JS脚本,命名为“UnderWaterEffect”,并输入如下代码/设置迷雾的默认设置private vardefaultFog=RenderSettings.fog;/保存默认的迷雾的颜色private vardefaultFogColor=RenderSettings.fogColor;/保存默认的迷雾浓度private vardefaultFogDensity=RenderSettings.fogDensity;function Update()function OnTriggerStay(hit:Collider)if(hit.gameObject.tag=WaterColler)RenderSettings.fog=true;RenderSettings.fogColor=Color(0,0.4,0.7,0.6);RenderSettings.fogDensity=0.1;function OnTriggerExit(hit:Collider)if(hit.gameObject.tag=WaterColler)RenderSettings.fog=defaultFog;RenderSettings.fogColor=defaultFogColor;RenderSettings.fogDensity=defaultFogDensity;g)删除掉原相机,拖个第一人称上去,然后将脚本拖到第一人称上,完成。 Unity3d提升班第四次课1.第三次课回顾介绍了3DSMAX中的模型UVW展开与贴图绘制,以及烘焙的方法。 介绍了Substance(程序贴图)的获取方法与使用。 简略介绍了U3D中的Animation动画功能。 2.Animation功能的使用3.插入视频a)支持的视频格式有mov、mpg、mpeg、mp 4、avi、asf,必须装有Quicktime,才可以导入。 b)将视频导入到项目库中后,新建一个片面,将视频拖到片面上。 视频不能自动播放,要用代码控制才可以。 c)新建一个JS脚本,输入如下代码renderer.material.mainTexture.Play();d)将JS代码拖到视频所在的片面上。 e)如果想要声音同步播放,需要展开视频文件,将其下的声音文件再次拖到视频所在的物体上,进行相应设置即可。 4.坦克游戏制作a)将坦克模型导入U3D中,绑定到新建的CUBE对象上,给CUBE加一个刚体组件,取消它的网格渲染。 b)新建一JS脚本,绑定到坦克上,用于控制坦克的移动。 代码如下var moveSpeed=5;var roateSpeed=10;function Update()if(Input.GetKey(KeyCode.W)this.transform.Translate(Vector3.forward*Time.deltaTime*moveSpeed);if(Input.GetKey(KeyCode.S)this.transform.Translate(Vector3.forward*Time.deltaTime*-moveSpeed);if(Input.GetKey(KeyCode.A)this.transform.Rotate(Vector3.up*Time.deltaTime*-roateSpeed);if(Input.GetKey(KeyCode.D)this.transform.Rotate(Vector3.up*Time.deltaTime*roateSpeed);c)选择Component菜单,将Camera-Control里的Smooth-Follow和Smooth-Look At拖到场景上的主相机上,然后设置两个脚本中的Target,将其设为坦克,让相机跟随坦克移动。 d)创建炮弹。 新建一个Sphere,设定好材质,加上钢体组件,调整到合适大小。 e)在项目库中,新建一个预设,命名为Shot,将做好的Sphere拖到这个预设上,然后从场景中删除Sphere。 f)新建一个空对象,命名为firePoint,调整位置到发射炮口。 拖动它绑定到坦克上。 g)编写一个JS代码,用于发射炮弹。 新建一个JS文件,命名为openFire,拖到firePoint对象上。 代码如下var Bullet:Rigidbody;var explosionPrefab:Transform;var openFireSwith=true;var waitFire=Time.time;function Update()if(Time.time(waitFire+5)openFireSwith=true;if(Input.GetMouseButtonDown (0)if(openFireSwith)var clone:Rigidbody;clone=Instantiate(Bullet,this.transform.position,this.transform.rotation);clone.velocity=transform.TransformDirection(Vector3.forward*100);Instantiate(explosionPrefab,this.transform.position,this.transform.rotation);openFireSwith=false;h)在刚添加了JS脚本的firePoint对象检视面板中,从项目库中,将事先做好的预设“Shot”拖到脚本的Bullet接口上。 测试一下,点击鼠标左键,就会发射炮弹了。 i)添加爆炸效果。 确保已经导入了标准资源的粒子效果资源包,在项目库面板中搜索fireworks,将它拖入到场景中,设置合适的参数,得到想要的爆炸效果。 j)创建一个预设,命名为boomPrefab,然后将上一步创建好的爆炸效果拖到这个预设上,并删除场景中的爆炸效果对象。 k)添加一段JS代码,命名为boom,用于给炮弹加一个碰撞检测,当炮弹碰到任何物体时,都会让炮弹消失,并在消失点加载上一步做好的爆炸效果的烟火。 (放在shot上,然后把烟花到接口上)放进去代码如下var boomFire:Transform;function OnCollisionStay(collision:Collision)Instantiate(boomFire,this.transform.position,this.transform.rotation);Destroy(this.gameObject);l)运行游戏,会发现烟火出现后不会消失,会不断反复的播放,所以我们要再建一个JS代码,命名为desBoom,放到烟火预设上,代码如下var creationTime=Time.time;function Awake()creationTime=Time.time;function Update()if(Time.time(creationTime+4)Destroy(this.gameObject);m)找个炮弹爆炸的声音效果,载入到项目资源库中,加载到爆炸效果的预设上,进行相关设置即可。 n)创建坦克发射炮弹时的火舌。 创建一个名称为“explosionPrefab”的预制对象,然后在项目库中找到Small explosion,拖到场景上,然后将它拖到预制对象上,再在场景中删除Small explosion。 o)修改openFire脚本,代码如下var Bullet:Rigidbody;var explosionPrefab:Transform;function Update()if(Input.GetMouseButtonDown (0)var clone:Rigidbody;clone=Instantiate(Bullet,this.transform.position,this.transform.rotation);c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论