




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Unity3D游戏开发之游戏架构脚本该如何来写这篇文章主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难。这篇文章的目的是让哪些已经上手Unity3D游戏引擎的朋友学会如何更好的写游戏脚本,当然本文这紧紧是我这么多年对游戏开发的认知,你也可以有你自己的看法。首先我们看看游戏主要是由哪几部分组成的,如下图所示,任何平台下的任何游戏核心都是由:数据、逻辑、渲染三大部分组成。 当你写过=2个平台下的游戏时你会发现其实游戏开发很“容易”,为什么“容易”呢?因为此时你会发现所有平台下开发游戏的模式,如下图中的“数据”与“逻辑”两部分真的是完全一样的,这两部分是与游戏开发平台无关的。然而真正与游戏平台有关的紧紧是“渲染”这部分,因为各个游戏平台下的渲染接口是不同的。这也就印证了一点,能把J2ME游戏写好的程序员就必然能把IOS或Android游戏同样的写好。读到这里请结合一下你的公司情况,你可能会发现在你的技术总监两三天就能上手Unity3D游戏开发 Cocos2d游戏开发,这并不是他对游戏平台研究的透彻,而是他对游戏数据的掌控能力非常强,所以能很快玩转各个平台下的开发。文章出处【狗刨学习网】 如下图所示,Unity3D这套游戏引擎在游戏开发中的权重如图中所示。其中包含100%的渲染部分 +50左右的逻辑部分。(因为Unity3D封装了很多与逻辑相关的API供开发者使用) 下面我们回到Unity3D脚本架构的编写上,我们知道Unity3D在是可以创建游戏场景的,在每个游戏场景中又可以创建游戏对象,把每个场景的游戏对象融合在一起就是一款3D游戏。游戏场景之间属于同等级的关系,为了让游戏场景之前交互我们需要有一个凌驾所有场景之上的脚本,我称之为“全局脚本”。如下图所示,所有场景都能与这个唯一的全局脚本进行交互。举个例子,当场景切换时可将临时逻辑数据写入全局脚本中,切换完毕后再去全局脚本中取之前保存的数据,从而实现交互。(当然还有别的办法也能实现这个效果,但是我觉得这样做会更好一些,数据会更安全一些) 接着我们就进入场景中,游戏场景是由若干游戏对象组成,下面我好好说一说游戏对象。游戏对象是需要绑定游戏脚本才能完成它的生命周期。那么脚本的使命就会尤其的重要。因为游戏对象比较多那么脚本必然会出现交互的情况,如下图所示,很多初期Unity3D的项目中的脚本会编写成这个样子。错综复杂相互交互,这样编写的脚本有可能你的游戏能做出来,可是你在维护的时候团队开发的时候你会发现你的脚本非常的混乱,别的同事想改都不知道怎么改。(显然这样的作法时完全错误的) 我们想想为什么脚本之间要交互,原因很简单。是因为脚本中需要使用/调用另一条脚本或者另一条脚本对应的游戏对象某一项数据/方法,为了解决这个问题而导致最终的脚本非常混乱。为了避免这个问题,我在开发中会这么做,如下图所示,脚本之间切记不要做直接的相互交互,脚本之间只做间接的交互。每一个游戏场景都有一个凌驾所有游戏对象之上的单例脚本,在这条脚本中保存场景中所有脚本的公共数据。包括该场景的整体逻辑更新都是在这条单例脚本中完成。每条脚本都只与这个单例脚本做交互,和别的脚本一概不交互。(间接交互) 编写脚本时请注意,脚本只干属于自己最重要的事情,就跟代码中的函数一样,只干最重要的事情。切记和该条脚本无关的事情不要去管,不要在脚本中做过多的相互连带工作,让所有连带工作的话都放在全局单例脚本中来做。这里我们举一个例子,主角砍怪或技能攻击怪,怪物受伤只到怪死亡以后屏幕播放一段胜利动画。文章出处【狗刨学习网】1.主角对象发动攻击,全局单例脚本接受按键事件后通知主角脚本播放攻击动画。2.敌人对象接受到主角发送攻击消息时开始播放受伤动画,敌人脚本接收到主角的碰撞时询问单例脚本 主角是“普通攻击、还是技能攻击”,接着敌人播放对应的受伤动画,根据攻击类型敌人对象开始减血。3.重复上面的操作,当敌人的血量=0的时。敌人销毁自身对象,并且敌人脚本告诉单例脚本自己已经死亡。此时,单例脚本在调用“胜利动画”对象播放胜利动画效果。 上述逻辑我是完全按照刚刚图片中所说明的方式来写,这样做就可以很好
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030货车行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030蔬菜切丝机和切丁机行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030草本化妆品行业市场发展分析及发展前景与投资机会研究报告
- 系统规划与管理师考试思维训练方法试题及答案
- 药剂学基础理论与实践的试题及答案
- 重要概念解析初级会计师试题及答案
- 贸易管理面试题及答案
- 2025年超细碳化钨粉及超细晶粒硬质合金项目发展计划
- 2025年特种装备电缆项目发展计划
- 江北复盛鱼嘴公租房配建廉租房项目可行性方案研究报告
- 焊材发放与回收及焊条烘干记录记录表
- 菠萝蛋白酶的影响因素及影响其酶活力的因素
- 前言 马克思主义中国化时代化的历史进程与理论成果
- 酒精依赖症研究白皮书
- 服装高级定制技术
- 职业高中高二上学期期末英语试题卷(含答案)1697
- 幼儿园中班语言《春雨的吉他》PPT
- 21ZJ111 变形缝建筑构造
- 第1章 健康风险与健康保险《健康保险学》教学课件
- 天然气管道置换记录表
- 学前幼儿园-《守卫国家安全的人》教学课件设计
评论
0/150
提交评论