Unity用哪种设计思想搭建游戏比较好
先写再重构。。。。
■网友
题主描述中的三种方法,真正开发游戏过程中是要混合起来用的。
而不是单独使用某一种。
自己动手多做几个游戏,先别管哪种方法,做出来再说,然后再重构。
积累多几次经验自然就知道什么地方该用什么方式了。
然后再去看看C#设计模式,以及一些知名框架的使用。
■网友
什么时候用组件:需要多次重复使用的,并且和Unity功能有关的东西才做成组件。可以在Hierarchy窗口里多次使用组件,也可以在代码里多次调用 Instantiate() 实例化组件。
我觉得不好的、缺乏美感的方式:把需要多个实例的东西,成个GameObject,不转化为组件,然后用Instantiate() 的方式去复制它。
有些相似的东西,可以都用同一个组件,只需要替换一下文本、图片之类的不同内容。
GameObject对象加个脚本组件,当作一个控制器,处理每帧都需要做的事情,例如处理鼠标和触摸屏输入。每种功能单独做一个控制器,不要都放在一个控制器里。不同控制器之间用事件机制去交互。
在 Hierarchy 窗口里的对象都是Unity引擎去负责实例化的。
需要多次重复使用的,但是和Unity功能无关的,做成普通的C#类,不继承 MonoBehaviour,用 new 去实例化。
有些纯计算功能,单独提取出来,做成无状态的类最省心,也就是没有字段和属性,各个函数都是静态函数。
【Unity用哪种设计思想搭建游戏比较好】 每次 Instantiate() 时,要想清楚这个对象的生命周期、什么时候需要调用Destory() 。
■网友
unity新人最近代码写到想吐了,由于学习的过程是循序渐进的,时间久了难免回头一看就会觉得之前的代码跟渣一样,所以我这个周末实在忍不住又把之前的代码全删了重写一次,这一次我自己遵循了这样一套规则,完全是自己摸索出来的,没有参考过别人的写法,所以如果有不妥之处还请高手们指出。0、只写unityscript1、按游戏中的系统功能和game object大类别划分组件,如玩家类,团队类,道具类,卡片类,功能建筑类,敌人类,Gui等等。同一类别之中的子分类主要有两种划分方法,子类别不多但差异不大的我会用变量和多态函数的方式用同一个脚本来处理;子类别较多但差异较大的,我会直接写多个脚本继承父类,父类需要全面考虑所有子类的需求。2、尽量不使用update,代码功能划分成粒度非常细的小函数,用事件相互调用外加大量使用coroutine的方式执行游戏流程,这样的话之后如果流程发生任何变化都可以很容易的进行修改。3、能在编辑器inspector里指定的对象就绝不用代码来find,如果inspector里不方便指定,则仅仅在start里find。4、只有Gui需要获取的数据可以定义为全局静态变量,全局变量尽可能只保留全局参数和脚本指针,脚本的开放变量只包含与Gui有关的变量,其余变量都只能通过函数接口获取,组件之间的相互函数调用需要主动从函数接口传递输入变量。总之就是尽可能减少公开变量和全局变量,强化接口的规范性。5、尽可能使用hierarchy关系来表达事物的内在逻辑,简单的比如说用父子关系表达团队和成员角色之间的关系,这样在start阶段用transform的find和parent就可以很快从逻辑上把组件之间的联系建立起来。
推荐阅读
- 黄金时间■黄金时间丨哪种产品最节水?购买产品请注意这个标识!
- 有点计算机基础的人想尽快找份编程的工作。哪种编程的工作最好找还需要学些啥
- 只看报纸、杂志、知乎、微博等文字而很少阅读书籍的人,和喜欢看书的延迟接受信息的人,哪种会比较优秀呢
- 营销型外贸网站用哪种建站程序和语言比较好呢主要是适合优化,可扩展兼容性,安全性,后期网站扩展升级
- 汽车|为啥说黑色汽车最不耐脏?哪种颜色最耐脏?
- A型血|哪种血型的人群容易患上肿瘤?提前给自己“算个命”,早防御早好
- 对 2.5D 的 ARPG 来说用 cocos2d-x 还是 Unity3D是否会面临同屏人数的问题
- 中年|讲真!论哪种机车的油箱对男士DD的伤害最大,还是有科学依据的
- 高中|特色高中你准备上哪种?浙江高考选科组合35种
- 维生素B|你的身体缺哪种维生素?维生素缺乏症一览,多吃这些食物补回来!
