开发太空射击游戏心得总结
[C#]
1
2
3 float amtToRotate = currentRotateSpeed * Time.deltaTime;
transform.Rotate(new Vector3(-1,0,0) * amtToRotate);
transform.Translate(Vector3.down * amtToMove, Space.World);
最近刚接触U3d,原来是从事java的,c#会点皮毛,第一个小作品是太空射击游戏。希望初学者看了能有所收获。
游戏类别:2D射击游戏
上手难度:容易
掌握知识点:
1、设置当前gameobject的位置代码:
[C#]
1 transform.position = new Vector3(-8.4f, transform.position.y, transform.position.z);
2、物体碰撞原理:
将被碰撞体也就是飞机设置为rigidbody,碰撞体也就是敌人,将isTrigger打勾。这样当两物体碰撞时,飞机就会触发OnTriggerEnter方法,碰撞后发生的事情,只需在这里添加即可。
3、碰撞时的细节:
飞机发生碰撞后爆炸,此时需要让飞机消失一段时间,等待飞机复活。这里需要用到MonoBehaviour.StartCoroutine,关于这个方法的使用方法,可参考官方官方文档。
4、Prefab:
预设,在游戏中应用的很广泛,当一个游戏对象需要重复利用时,就需要构建prefab。本游戏中子弹和爆炸效果都使用到了Prefab。
Instantiate方法说白了就是制造出这些复制体用的。
5、关于物体旋转:
在游戏中,陨石是以旋转的方式下落的。这需要在update方法中插入如下代码:
[C#]
1
2
3 float amtToRotate = currentRotateSpeed * Time.deltaTime;
transform.Rotate(new Vector3(-1,0,0) * amtToRotate);
transform.Translate(Vector3.down * amtToMove, Space.World);
需要注意的是:transform.Translate(Vector3.down * amtToMove, Space.World); space.world的意思是旋转时以世界的坐标系为参照。而不加这代码则以自己的xyz轴为参照物,这将导致陨石不会下落,而是做一个垂直方向的圆周运动。
>>相关产品