看完了unity3d教程,试着做一个作品,提高一下bigger。选了这个《僵尸尖叫》。
当然模仿也不能死板硬套全部搬过来,我就做个3D版的吧,省事。
首先是分析游戏主要结构,我的观点:
1.地形系统;地图板块在动态更新。
2.僵尸链表;每咬死一个人类,人类会加入僵尸的“队伍”,但是这个队伍是任意节点可删除的。链表无疑。
3.速度机制;类似于所有跑酷游戏,速度是不断增加的。(这个没难度)
*************************************
一步步来,目前我做出来了地图系统,还加了个邪恶的震动。这个也没啥难度,相机角度固定后,“能见度”是有限的,我设置的能见度是5个地图块(50个unity世界空间单位长度)。一个场景中最多5个地图块就够了。然后掐头续尾。。。。
wait!!!
如此做法,每走一个地图块,都要重新克隆、删除节点,效率太差。于是我做了改进。实现声明出每种种类的地图块的5个实例数组,并为每个数组配一个游标index,然后再声明一个当前使用的地图块的数组(容量为5),页配备一个游标,一个就够了,标明“头结点”。这个当前使用地图块的数组当成循环数组来使用。就OK了。
使用的时候,每个数组全部都是从前往后循环着来。地图块的预处理数组中,游标所标注的是当前数组下一次被使用的实例的索引。
当前地图块的数组没次都将“头结点”的active设为false,然后换成新的地图块,平移到尾节点的后面,这样就连续起来了。OK,搞定。不需要释放任何节点。
(十分难得的机遇,概率设的很小,被截到了)
特别说明一下,我设置的机关中有一个动作是“掉落”,为了避免极小概率的连续掉落,导致无路可走,做了个防连续掉落。这个技术性也不复杂。
我是新建了个独立的掉落机关。使用独立的脚本,在总指挥中心进行防止连续掉落处理。只需要访问以下数组就可以了,代价很小。
*************************************
也非常感谢自己所在的unity交流群的朋友们,给了我不少优化方面的建议,尽管我的电脑很落后,但是照样撸得飞起。^_^谢谢了。
继续下一步,持续更新ing