7.4 碰撞检测的实现
这里仅列举一个碰撞检测函数,首先得在相应的两个游戏对象上面添加碰撞检测器和刚体组件,具体步骤如下:
Component->Physics->Collider; Component->Physics->Rigidbody;
注意不要勾选重力,代码实现如下:
void OnTriggerEnter (Collider collider)
{ }
该碰撞检测函数使用的是触发器,检测的是玩家对象是否碰撞到飞鸟以及飞镖是否碰撞到飞镖,进而实现不同的游戏功能。
if(collider.gameObject.name == \{ }
if(collider.gameObject.name == \{ }
isHitBullet = true; SetPositionAndSpeed(); Score.m_score += 5; isHit = true; Score.isHitted = true;
7.5 音效的实现
音效主要有背景音乐、人物音效、飞镖音效等。实现游戏音效,只需要在主像机添加一个Audio Listener游戏组件,具体步骤如下:
Component->Audio->Audio Listener;
然后在相应的游戏对象上面添加Audio Source游戏组件,具体步骤如下:
Component->Audio->Audio Source;
第 21 页 共 33 页
如图7.5所示:
图7.5 音效组件
最后再用代码进行相应的控制就行了。
7.6 游戏通关
在玩家通过关卡一得到100分之后,将选择进入关卡二,如果再得到200分就将通关,进入获胜场景。此刻玩家可以看见自己分数和最高分,选择是否重新开始游戏。选关场景如图7.6所示:
图7.6 下一关界面
第 22 页 共 33 页
7.7 游戏失败
如果玩家在游戏过程中没有躲避雪球或者飞鸟的攻击,那么游戏就会失败。 游戏失败之后,就会调用绘制窗口的函数,绘制一个选择窗口。然后,玩家可以选择继续游戏或者退出游戏。继续游戏将回到游戏开始界面,并进入一关,不能直接进行第二关,即使之前通过了第一关也不行。
8 项目总结
8.1 总结的目的
项目在开发的过程中,遇到很多的问题,是需要总结并记录的,以便于下次在遇到同样的问题时,能够快速高效的解决该问题,以节省游戏项目的开发周期,降低开发的成本。并且,对一个已完成游戏项目的总结,在他人学习该项目时,可以提供很好的帮助。
8.2 关键性问题总结
第一个关键性问题是精灵动画在贴图的时候遇到的麻烦。刚开始用是Unity3D的平面组件来进行贴图,但是贴图用上去之后,运行时,精灵在运动的时候是倒立的,在检视器窗口中进行手动旋转180度之后,貌似问题解决了,但是在脚本控制精灵运动的时候就会出现意想不到的运动,比如代码明明写的是让精灵水平运动,但是精灵却是斜着走的。然后,我又试着用盒子组件来进行贴图,问题就更加千奇百怪了。最后,终于找到了解决办法:用Maya创建一个平面,让这个平面的绕X轴旋转90度,然后绕Y轴旋转180度,使得自身坐标系的Z轴反向,这样再把这个平面导成FBX格式的,再导入到Modles目录下,以便进行精灵贴图时使用。
第二个关键性问题是实例化的Prefab对象的销毁问题。我们经常在实例 化一个Prefab对象之后就不去管他,这样的话就产生很多游戏对象,影响游戏的运行效率,增加系统的开销。比如本项目中人物发射的飞镖,我是让它在3秒后或者在击中飞鸟的时候销毁,起初我也不知道该怎么去销毁它,因为在实例化之后,这个游戏对象既没有名字(指的是玩家自定义的名字),也没有标签,在调用Desdroy()函数的时候必须填写名字,那么该怎么办呢?方法其实还是很简单的,申明一个私有的GameObject对象,用来接收每个实例化的对象,然后判断这个对象是否为空,不为空就进行销毁。
当然遇到的问题还有很多,这里列出了两个最重要最难解决的问题,以 便于以后或者他人遇到同样问题时能快速解决。
8.3 游戏开发周期
做游戏项目一个很关键的因素就是游戏开发所需要的时间,即开发周期。影响本次项目开发的因素不仅是技术上遇到的问题,更多的是美工上遇到的问题,
第 23 页 共 33 页
很多游戏项目也因为美工不过关而终止,这就要求前期准备阶段要做好。在技术方面遇到了困难与问题不能一拖再拖,一定要迎面而上,积极处理并寻找解决问题的方法,以免延长游戏开发的周期。
第 24 页 共 33 页
结 束 语
Unity3D是一款强大的游戏设计引擎,只要具备基础的C、C++、C#、javascript基础的人都很容易上手。凭借Unity3D出色的物理引擎以及3D渲染效果,很值得大家去学习。更大的一个特点是你只需要一次开发,就能把你的作品发布到当今火热的平台上去,诸如Windows、Mac、IOS、Android、Wii等流行的平台。本游戏项目所涉及的Unity3D功能只是很小的一部分,它的强悍之处等着大家一起去学习。
第 25 页 共 33 页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Unity3D游戏设计与实现 - 图文(7)在线全文阅读。
相关推荐: