|
资源信息 Tutorial Information
教程名称: | 《坦克大战》全方位解析(发帖教程) |
适用引擎: | (适用引擎,为空默认为Unity) |
教程语种: | 中文 |
教程等级: | 1 |
教程格式: | 图文(请用IE9以上浏览器访问本版块) |
教程作者: | 转载自互联网 (如有问题请短消息联系作者或发表回复) |
下载地址: | 无 (兑换积分) |
本帖最后由 wangqiang 于 2013-2-14 12:39 编辑
分析一:建立场景和基本编程
在新建工程中出现3个文件夹:Assets,Library,Temp
Assets: 存放建立工程的资源。(贴图,脚本等)
Library:DLL文件及系统文件。
Temp:建立的过程文件
1.导入工程文件所需要的3DS文件及贴图。
2. 创建地形Terrain => Create Terrain 在我们使用的Unity3D环境中需
导入地形所需要的脚本。
3.创建Cube,来进行坦克物体的坐标矫正
把坦克物体的Position设为0
4.创建光源
5.坦克W,A,S,D脚本编写,在Project创建JavaScript
由图可知我把坦克模型放到了名叫” C_Tank”的Cube上,在脚本里创建了Tank对象,同来寻找物体” C_Tank”,下面的代码大体一致,首先获取你按下去的键Input.GetKey(KeyCode.W)
Tank.transform.Translate(Vector3.forward*Time.deltaTime*25) ;
“Translate”是移动你的坐标
Tank.transform.Rotate(Vector3.up* Time.deltaTime * -25);
“Rotate”来控制方向 ,“Vector3.up”中的up(0,1,0)对应场景中的Y轴
完成脚本后将JS文件拖放到Tank的parent上即名叫”C_Tank”的Cube上
6.渲染天空效果
分析二:物理引擎和粒子系统的应用
所谓物理引擎如下图添加Rigidbody,实现碰撞效果
而场景中的永远存在不受碰撞影响的,应不加物理引擎Rigidbody
2011-6-14 15:42
7.墙壁设置
据视频讲,使用Prefab能增加性能。。。墙壁的设置很简单,这里不加以概述XXXXXXX
8.坦克的”边缘碰撞”问题
由于我将坦克模型放到Cube,即本例中的C_Tank中,支持碰撞的总是C_Tank而不是我们所想的坦克。鉴于这种情况,我们可以在C_Tank中添加一个方块,如下图所示,在x,y,z处分别将坦克的四角囊括进去,从而实现坦克的全方位碰撞效果。(阴影部分就是我所添加的方块)
这里只剪裁了一个方向的图XXXXX
9.”子弹”的设置
设置Cube,改名为”C_Bullet”,设置物理属性,建立prefab “Bullet”
添加js文件进行编译。
设置Cube “GO_FirePoint”移到炮口位置,子弹通过这个位置来生成。
在js脚本中设置子弹初始值XXXX
恭喜你,如果完成到现在的所有情况,那么你就可以发射”方块子弹”了XXXXXX
10.子弹的后续问题
1.给子弹编译模型2.粒子系统 3.子弹发生碰撞后消失
在C_Bullet处导入火箭模型,并绑定。让C_Bullet作为模型的parent ,将C_Bullet的属性Mesh Renderer 点掉,不渲染方块,只渲染火箭模型
绑定粒子系统,GameObject => Create Other => Particle System
已经如上图后,在添加一个灯光,作为火箭后面的”火光”
GameObject => Create Other =>Pointlight(点光源)
子弹消失设置
到目前为止,你就能大致完成”坦克大战”的项目了,其他的细节问题,欢迎大家共同讨论。
Unity3D联盟群:144261026 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|