Unity 3D飞机大战制作心得



1.摄像机的设置需要注意:选择摄像机的投影方式为Orthographic(正交投影)。
2.控制飞船的移动,其实就是控制一个3D的Vector3(x,y,z)的变换,首先需要得到
在x轴方向和z轴方向上面的移动变量,接着再给坐标赋值,实现坐标自身相应的移
动,变换。
接着还要给刚体相应的速度方向。具体使用:
GetComponent<Rigidbody>().velocity=movement;
3.为了提高游戏可玩性,加入方向上面的速度
GetComponent<Rigidbody>().velocity=movement*speed;
4.控制发射的时间间隔:
Time.time>nextFire
5.实例化做好的子弹并且发射出去:
Instantiate(shot,shotSpawn.position,shotSpawn.rotation);
6.管理子弹的生命周期:
为游戏区域添加触发器,并当电光子弹飞出区域时触发事件,在事件响应函数中
调用Destroy方法。
7.添加小行星随机旋转功能:
在脚本中添加一个表示小行星旋转系数的变量tumble,再重载Start函数,为刚体
组件的角速度赋上随机值。
例如:
GetComponent<Rigidbody>().angularVelocity=Random.insideUnitSphere*tumble;

PS:注意需要设置角阻力为0,否则该小行星速度会越来越慢。

8.添加小行星随机产生的逻辑:
注意需要让小行星在一定的范围之内产生。(x轴方向)
例如: 
spawnPosition.x=Random.Range(-spawnValues.x,spawnValues.x);
spawnPosition.z=spawnValues.z;
spawnRotation=Quaternion.identity;
Instantiate(hazard,spawnPosition,spawnRotation);

9.使用Unity中的协程来让小行星的生成有时间间隔。

10.添加音频:
在发生碰撞的时候,调用音频来产生爆炸的声音

11.UI
添加计分UI的时候需要注意UI的位置。

12.重新加载场景
Application.LoadLevel(Application.loadedLevel);
是Unity中重新加载场景的常用方法。



你可能感兴趣的:(unity3d)