共用一个脚本是为了后续拓展功能和维护便利,试想一个游戏有50个以上单位,要是每个单位都用不同的脚本写,维护其来非常麻烦,尤其是一些共有性能没必要重复。 但是很快发现一个问题,当功能越来越多的时候,比如植物大战僵尸里豌豆射手是个很普通的单位,但是其他单位有许许多多的特殊功能,有些还有特殊的动画效果,如果都用一个脚本,这个脚本里会有许许多多的if判断是否该单位存在某个特异功能。这也意味着浪费算力在判断上,即使该单位没有这些功能。比如早些时候制作的简单初级单位豌豆射手,几乎没有任何特异功能,但那些判断是否有特异功能的代码还是要走一遍。 如果每个单位都用不同的脚本写,看上去能解决这个问题,但是许多特异功能与所有单位的公用功能是纠缠在一起的没法知道完全分离。比如一个单位身上一直有火焰灼烧效果,可以单独写一个函数或脚本,但是如果是类似免伤反伤的效果,与公用的攻击被攻击处理函数纠缠,没法做到完全分离,还是要先判断单位是否有该特殊功能。 有没有更好的方法解决这个问题呢?