在程序和美术方面,使用Unity引擎时有哪些禁忌?

 
从美术和程序两方面,使用unity引擎时有哪些禁忌?

 

 
靠谱的回答

 

个人目前只在做2d游戏,而且是初学,回答很具有局限性,甚至有可能有错误,见谅。

 

程序上

1 2d游戏不分层靠改z坐标分前后,刚开始可能可以用,之后多半会出问题,比如粒子特效之类的改z坐标不现实。

2 在继承了MB(MonoBehaviour)的类里,进行一次巨大的内存申请(new等方式),在MB里申请内存好像是不会“自动”释放,也不会自动还给系统。一次巨大的new之后就会一直占用着了。

感谢评论区提醒,注意是不会自动释放的,因此要手动做GC(Garbage Collection),个人用的方式是在切换场景的时候调用System.GC.Collect ();注意这一定不是最好的方法,个人水平有限,只能暂时避免使用过多new。

3 在Update里进行复杂循环,计算,new大量东西每一帧申请大量内存等。

4 一个物体上挂了几十个通道几十个脚本。

5 完全不懂优化,例如图片等美术资源不压缩就丢进游戏,放进去没做图集等等。或者压过头造成破坏性压缩,比如产生严重锯齿,图片颗粒等等。

6 字符串直接“加”字符串。

7 完全不懂design pattern和设计准则,一个脚本几千行。或者每个脚本就几行,一个小游戏弄了几千个脚本。(如果代码都是有效的话,相比于前者来说无伤大雅。)

8 不会命名法,什么中文拼音,英语甚至日语罗马音全混在一起,变量就叫a b c d aa1什么的也不加注释过一天自己就看不懂了。或者同样的物体叫完全不同的名字,同一个名字的物体在同一个场景里有一大堆。

9 程序耦合度过高,随便需要改变或者删除一部分功能就会导致大崩盘。

10 无脑继承 MonoBehaviour(某些极端简单的2d游戏可以全部继承MonoBehaviour) 和无脑黑MonoBehaviour而完全不继承MonoBehaviour。

11 无脑滥用插件。

12 Hierarchy里东西乱放,没有考虑好层级,所有东西都堆在最上层啊,没有空的游戏物体做上级啊等等。

13 虽然MonoDevelop一类是有自动对齐的,但是还是有人三五句程序堆在一行啊,不明所以的换行啊等等排版出现问题的情况。虽然不会直接影响程序运行,但是可读性大幅度下降。

14 完全不进行版本管理。

15 没有备份的情况下做一些危险或者不可撤回操作,例如delete。

16 完全不做继承,相同的功能或者稍微有改动的功能重复写了数遍。

17 稍微复杂的功能没法实现的时候,用一些邪门方法解决,可能当时可以,之后必定会出现严重问题。(比如预想是某个计数器到10出现新一波敌人,不小心在三个不同的地方重复计算了这个计数,然后没发现具体原因,只看到结果变成了12,就把“等于10”的条件改成“大于10”甚至“等于12”)

18 完全不关心优化,例如一个小游戏做成几G容量+运行时占用将近1G内存(我真的没黑枪某游戏)。

 

美术上

0 盗图盗素材等一系列非原创行为。

 

美术上其实不是很容易到“禁忌”的程度,以下几乎都不一定能算禁忌

 

1 做的图含透明部分后大小不一,还要程序员重新修正到透明最小(万一有不含透明部分都大小不一的那真的算禁忌了)或者修成大小一致。尤其按钮和血条进度条等,附了一大片透明就会有不大不小的麻烦。

2 比如类似相框一样的只有边框,中间全透明的,个人认为最好做成4个框拼接,中间透明的部分不要。

3 比如按钮等等只需要给原来颜色版本和如果需要的特殊变化版本等,不要只给一个按下去变灰色之类的特殊版本,单纯只整体变颜色unity程序员就可以做到,只给个灰色的还要开ps去擦。

4 如果不是只使用一次的文字,最好做成字体,否则程序就变成从控制字符串变成控制图片,而且之后如果又要追加文字又要重新做。

5 跟程序一样的问题,瞎命名,叫a1 a2 未命名png 什么的,虽然比变量名直观一点看一下能看出来是什么,但是管理起来还是很麻烦。

6 完全不懂程序也很麻烦,比如一个按钮含按钮和装饰的部分,然后美术把这两个做成一张图了,就可能要返工。或者比如无脑加mipmap,虽然程序点一下就能取消掉一个,甚至可以写脚本取消,但是确实增加了工作量。

7 配色不统一,甚至配色水平不如程序员的也是有见过的…风格不统一,分了好几批人做等等。

8 完全不懂渲染和优化,粒子数巨多,还开碰撞什么的。

9 没考虑是在什么平台上用的ui,做的分辨率过大或者过小,又没做成九宫格。

10 剪的素材不合理,比如把粒子特效和背景做在一张图里的,要粒子特效素材结果给了整体中间状态图。又比如说“攻击力提升”“防御力提升”的艺术字素材,并且“提升”两个字一模一样,个人认为应该是剪成“攻击力”,“防御力”,“提升”三个素材,但是往往收到的是“攻击力提升”和“防御力提升”,力和提中间有的时候又隔着很长的透明部分,就要程序重新修,等等。不过出现这种情况大多是因为中间沟通不畅导致的。

11 不算是禁忌,纯色背景做素材了,万一碰到不懂的程序还以为这有什么玄机加到素材里又浪费空间。

12 不算是禁忌,完全一样的或者高度相似的素材重复给了非常多个,比如有上述问题程序自己修正好了,换一个scene发现又一堆要修正的一模一样的素材,就有点烦了,也是增加工作量的情况。

13 不算是禁忌,在光照极强或者背景很亮的情况下用粒子特效,可能会导致效果变差。