![Unity 4.3游戏开发项目实战(C#、JavaScript版本)](https://wfqqreader-1252317822.image.myqcloud.com/cover/700/23370700/b_23370700.jpg)
2.1 游戏功能分析
首先运行太空射击游戏项目,了解太空射击游戏项目是一个什么样的游戏;然后对太空射击游戏项目进行功能分析,对该游戏项目有一个比较深入的了解,以便后面逐步实现这个基于2D的射击类游戏。
2.1.1 运行游戏
在光盘中找到游戏项目——2.太空射击游戏项目——SpaceShoot,运行游戏,选择800×600的分辨率,打开如图2-1所示的开始场景界面。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0034_0001.jpg?sign=1738858011-91MuPHGmMlrrNy7IDzMpbpavonkgL10N-0-0a60da0b27434dc49bd31791046023cd)
图2-1 开始场景界面
在开始界面中,单击任何键,进入到游戏场景,如图2-2所示。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0034_0002.jpg?sign=1738858011-uvdikAycDRe4bEwJp8hKDO8IcZqbl5pO-0-9c81c6e651d09b11a65ad7e08d6d6ec8)
图2-2 游戏场景界面
在上述游戏场景界面中,左、右键可以左右移动飞机,单击空格键,可以发射炮弹。炮弹每击中陨石一次,就会增加100分,并显示爆炸场景。
图2-3所示是飞机炮弹击中陨石的爆炸界面。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0035_0001.jpg?sign=1738858011-VMdlB7ELCXUpXJiM66YcRk6mNiQq2GFu-0-95e4a1f757d1c3dd6dbb36b7575948eb)
图2-3 炮弹击中陨石场景界面
在游戏场景界面中,陨石每砸中一次飞机,飞机的生命值减1,并出现爆炸场景,图2-4所示是陨石砸中飞机的爆炸界面。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0035_0002.jpg?sign=1738858011-n59Nrkqz1rK4mwJixEEE3GUwklxitRkz-0-281fc8cd8f56ed0ce4745e85e3ae86da)
图2-4 陨石砸中飞机场景界面
如果飞机生命值一直大于0,当倒计时为0的时候,游戏界面将会转到赢家场景,如图2-5所示。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0035_0003.jpg?sign=1738858011-dek7dyv4AVkxIMvaR4xELrM4SQqeYjoS-0-1ca82023aaca882390f389626dd0a63a)
图2-5 赢家场景界面
在赢家场景图2-5中,单击任意键,又将进入如图2-2所示的游戏场景。
如果飞机的生命值等于0,则游戏界面将会转到输家场景,如图2-6所示。在输家场景图2-6中,单击任意键,此时就会再次进入如图2-2所示的游戏场景。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0035_0004.jpg?sign=1738858011-g9lNBjwFhVB8gipRMx8Dt2CTp9qOuS6U-0-54a7a3d1bb9c33e71e1b2c426ea2bd2d)
图2-6 输家场景界面
2.1.2 游戏功能分析
通过运行上述太空射击游戏,可以看到:整个游戏可以划分为四个游戏场景,它们分别是游戏开始场景、游戏场景、输家场景和赢家场景。
这些场景的逻辑关系如图2-7所示。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0035_0005.jpg?sign=1738858011-bbyetrsmi7c4hgyfOeWnRBofkkyh6mTQ-0-f54646aa68780a0774684c2fa352b670)
图2-7 四个游戏场之间的关系
在图2-7中,游戏开始场景是游戏运行的开始界面,在游戏开始场景中单击任意键,进入游戏场景,而游戏场景则是游戏的主界面。
在游戏场景中,如果飞机的生命值等于0,则游戏进入输家场景;如果游戏到倒计时等于0,则游戏进入赢家场景。在输家场景或者在赢家场景中,单击任意键,重新进入游戏场景。
在游戏场景中,主要有三个游戏对象,分别是飞机、陨石和飞机发射的炮弹。当飞机发射的炮弹击中陨石时,会出现爆炸效果;当陨石砸中飞机时,也会出现爆炸效果,因此还有两个爆炸效果对象。为实现游戏的可玩性,还需要显示分数、飞机的生命值和最高计分,并且显示游戏的倒计时。
完成该游戏后,游戏项目的目录结构如图2-8所示。其中Image目录存放各个游戏对象所对应的的图片;sound目录存放各种声音文件,如发射炮弹的声音、爆炸声等。四个游戏场景则位于根目录之中。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0036_0001.jpg?sign=1738858011-4UC7lH9DXHXlNIw87vOGsbgaQyBzBaIh-0-f6d431ddb5233b4fca69942d621f2dab)
图2-8 游戏项目的目录结构
图2-9则显示了prefabs目录中的相关预制件对象,如显示2D图片的sprite预制件、炮弹预制件projectile等。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0036_0002.jpg?sign=1738858011-mFBbW2rIpby5zo8eM6ibKSxwwyokSCCn-0-6643f4b2a06ad575ec61d5d26d9942ff)
图2-9 prefabs目录
对于C#开发者来说,图2-10显示了需要开发者开发的C#文件,共有9个文件;对于JavaScript开发者来说,图2-11则显示了需要开发者开发的JavaScipt文件,共有9个文件。
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0036_0003.jpg?sign=1738858011-6VsZCznwyVaqDfapsJdQks1qdfcAQ8Oy-0-0380b32d48fcbedf00aec134c8373f70)
图2-10 C#文件
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0036_0004.jpg?sign=1738858011-h5U3MdG8hMdxwCkEcsPy0gIWYg2MbkLE-0-191bfac22b61bcd00e877771cbaf468e)
图2-11 JavaScript文件
这些开发文件的具体功能说明见表2-1。
表2-1 开发文件的功能说明
![](https://epubservercos.yuewen.com/E586E6/11989104003033406/epubprivate/OEBPS/Images/figure_0037_0001.jpg?sign=1738858011-ZHBUhqhASrhFn8GMEy00uHHqJ7LXgmu2-0-ed9689714c3fc047981fc54b78831833)