在Free Aspect的视窗下,图片的显示不完全。如上图
于是我们根据图片的清晰度来自定义添加一个视窗尺寸,如下图
设置完视窗尺寸,再将Camera的尺寸设置成 700(清晰度的高)/2/100=3.48, 因为图片本身的pixels per unit就是100,如下面两幅图
将农场图片放在0层
然后再将鼠洞素材导入,将其放在1层,才能看见鼠洞
将两种状态地鼠的素材导入
再将二者均拖成预制体
给普通状态的地鼠加上2D的碰撞器
为点击地鼠使其变成红肿状态写一个脚本HitMe,即在点击时使用实例化即可,此处要注意Instantiate和Destroy的顺序不可变
写好后,将脚本拖给普通地鼠预制体,再将红肿地鼠预制体赋给脚本实例化对象
写一个Dead脚本赋给红肿地鼠,使其在0.1秒后消失
再写一个BackHole脚本给普通地鼠,使其如果没有受到攻击,会在0.8秒后钻回去(消失)
Create脚本是为了产生随机位置的普通地鼠,Born函数使用Random.Range产生随机数的方式选择每次产生的位置,使用InvokeRepeating来重复Born这个函数。 ps: Vector3.zero=(0,0,0)
创建一个空物体叫作CreateTarget,将 Create脚本赋给它即可。
创建一个Text,参数设置如下:
效果如下图:
创建一个C#脚本ScoreCount,将基本分(一个静态变量)设为50,并完成Text对分数的显示。
创建一个空物体叫作GameController,将ScoreCount脚本拖给它
再回到BackHole脚本中,如果score不为零,那么地鼠每销毁一只就会减一分
但是这样就无法算出真实的分数,那么回到HitMe脚本中,只要地鼠因击中而销毁一次,便会加回一分,前提也是score不为零时
再创建一个Text,作为最后的GameOver!的显示,Text暂时空出来。
回到ScoreCount脚本,当score等于零时,便将"Game Over!"字串赋给Text
给两个状态地鼠的预制体都加上Audio Source,将音频appear和beaten分别拖给两个预制体
并将两个预制体中Audio Source的Play On Awake分别勾上,制作出地鼠出洞和被击中时的音效
最后,将背景音乐序列01直接拖给Main Camera。
且将Main Camera中Audio Source的Loop也勾上,如下图。即可顺利在游戏中播放。
全部游戏制作完成。
总结:
1.可以实现地鼠被击中后红肿并消失,以及未被击中后回洞的程序;
2.无法实现分数的自然减少,只能通过减一分增一分的方式来进行计分,这是不足;
3.无法实现游戏的重新开始,这是另一不足;