- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
项目讲解文档(版)
unity游戏集成Game Center
a、在xcode中编写插件
理论上我们可以不写一行Objective-C 代码就能够发布一款使用Unity 制作的iOS 游戏,但问题是当我们需要集成一些iOS 平台专有的功能,比如Game Center 或内消费(游戏内消费)功能,我们就不得不与Objective-C 打交道, 在Xcode 中为Unity 编写插件,使Unity游戏也能使用到上述功能。
b、 游戏UI
屏幕上会显示主角的装甲以及得分。如果游戏结束,屏幕上将会显示“游戏结束”,同时显示“再来一次”的按钮。
c、 主角
主角拥有3级装甲(血量),被敌人几种或者撞击1此,损失1级装甲,当装甲为0时,游戏结束。主角的移动控制分为两种:1,键盘W、S、A、D可以控制移动;2,鼠标点击可以控制主角移动,点击后,主角移动至点击位置。主角的子弹发射通过鼠标左键控制。
d、 敌人
游戏中存在两种敌人,一种为不能发射子弹的普通敌人;另一种为可以发射子弹的高级敌人。
游戏美术资源
模型:己方主角飞机,敌方两种飞机,敌方高级飞机用于碰撞检测的mesh,己方和敌方的子弹模型。
音效:游戏的主背景音效,己方主角飞机发射子弹的音效,己方主角飞机死亡的爆炸音效。
贴图:模型对已贴图,背景星空图,gizmos贴图,爆炸特效材质贴图。
粒子特效:己方飞机和敌方飞机的爆炸特效。
分析游戏需求以及unity的对应解决方案
项目基本可以分解为五个部分:
游戏管理器:用于播放背景音乐,存储玩家历史得分和当前得分,游戏暂停和重新开始等主体功能;
解:管理器可通过Awake方法进行分数,主角等变量的初始化;由于要控制游戏的暂停相应,所以可以使用Update方法进行事件监听,同时,由于背景音效要一直播放,所有播放音效也可以放在Update方法中;游戏中会展示玩家得分和按钮等,可以在OnGUI方法中对以上对象进行绘制。
玩家:用于控制主角飞机的移动以及发射子弹等功能;
解:玩家脚本可以通过Start方法进行音效、玩家对象的变换信息等变量的初始化;由于玩家控制是通过鼠标或者键盘,所以这些功能可以使用Update方法进行监听。鼠标控制玩家移动需要获取鼠标点击的位置信息,通过unity中的射线检测来完成功能;由于敌方子弹或者敌人撞击到玩家后,玩家会进行减血或者销毁,所以需要进行碰撞检测,可以使用OnTriggerEnter(Collider other)方法进行碰撞触发检测。
c、敌方:用于控制敌方飞机的AI;
解:敌方AI分为两种,所以使用继承的方式来实现。敌方单位的AI比较简单,主要包含两项功能:1、移动;2、发射子弹。在敌方脚本中,可以使用Start或者Awake方法进行变量的初始化工作。由于两种敌人的移动方式不一样,所以可以将敌人的移动抽离成一个方法,通过方法的复写达到不一样的移动方式。由于敌人一直处于移动或者发射子弹中,所以上述抽离的方法可以由Update方法持续调用。
d、敌方生成控制器:用于管理敌方单位的生成。
解:在敌人生成器中,可以使用Start方法进行变量的初始化;由于游戏没有尽头,所以敌方单位是一直在生成的,所以生成逻辑可以使用Update方法进行实现。为了便于开发,可以使用OnDrawGizmos方法在场景中绘制一张图片来展示生成器。
e、子弹脚本:用于控制子弹的检测和移动。
解:游戏中子弹也分为两种:己方子弹和敌方子弹,所以同样可以通过继承的方式实现。子弹的逻辑很简单,只有两项功能:1、向前移动;2、进行攻击检测。由于子弹一直在向前移动,所以可以通过父类的Update方法进行控制。攻击检测可以使用Unity中的触发器OnTriggerEnter(Collider other)进行检测,由于己方子弹和敌方子弹检测的目标不一样,所以,需要在子类中重新进行检测,以覆盖掉父类的检测。同样的,可以通过Start方法对子弹的变量进行初始化。
项目UML
UML解释:
a、
…… 依赖:一种使用的关系,即一个类的实现需要另一个类的协助;
—— 泛化:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。
b、UML类图主要有两条主线,上图中为分别使用红色椭圆包围起来的1和2。
c、1主要用来管理游戏的主逻辑以及玩家的相关控制;2主要用来生成敌方单位并且控制敌方AI。
d、敌方单位和子弹都拥有两种,所以采用一种继承关系。
UML延展问题:
如何在unity中实现对象的引用?
如何使用c#实现继承?
Unity的碰撞检测机制是什么?
Unity的原生GUI的绘制原理是什么?
Unity中Animation动画如何制作?
讲解项目代码
示例:
void MoveTo()
{
i
您可能关注的文档
最近下载
- 国开电大学习网网络安全技术形考任务答案.pdf VIP
- 工程实验力学 第2版 教学课件 作者 计欣华 邓宗白 鲁阳 等编著 参编:张明等 第7章 电阻应变式传感器.pptx VIP
- 《劳动关系与劳动法》课程教学大纲(本科).pdf VIP
- 工程实验力学 第2版 教学课件 作者 计欣华 邓宗白 鲁阳 等编著 参编:张明等 第8章 光测弹性学方法.pptx VIP
- 《急诊与灾难医学》第六章-急性疼痛.pptx VIP
- 短视频:策划、制作与运营PPT课件(全套完整版).pptx
- 2025年乡村民宿可持续发展战略规划与实施路径.docx
- 劳动法课程教学大纲.doc VIP
- 7.2+践行平等 统编版道德与法治八年级上册.pptx VIP
- 工程光学完整课件.ppt VIP
原创力文档


文档评论(0)