我按照视频做的源码地址http://pan.baidu.com/s/1o8lGo7C,打开Main(Scene)是按视频做的,另外Done文件夹下有个Done_Main.unity是本身带的超过视频内容的部分,不过似乎有bug,我还没仔细看
转载视频地址,有字幕http://i.youku.com/u/UMzM3NTAyMTY2NA==
其实视频很多东西说的挺详细了,再对其脚本进行分析似乎意义不大,来看看按照我的方式没有视频说明的情况下如何从当前的代码向他的Done_Main场景进行调整的吧,按步实时更新
第一步:
1.打开Done_Main场景,进行简要的分析
相比原始的场景中的GameObject栏,多了个StarField,从名字和其中只包含粒子效果组件(哪天写个调整Particle System效果的专栏,不过Unity整体的官方主要文档我还没看完,为了减少误导,得等我简单看一遍再说)看,这是一个星空的粒子效果,先记着这件事
2.再看Prefabs文件夹下,多了2中岩石的种类和敌方飞机和敌方子弹的预设体,意料之中,还是先记着这件事
3.整个工程给的比较精简,没有太多多余的东西,还就是多余了几个脚本,减少了我们很多的工作量,按我的习惯,从有交互功能的脚本来分析吧,打开到脚本那一项
Find References In Scene,这很不错,我一直很喜欢用Find all References功能,找到只有一个物体Background,就是我们的背景图,从代码上来看它是调整
背景图z轴的位置,由于Vector3.forward,实现背景的移动?为了省力,其实可以不用,我们运行一下游戏,发现运行中z轴的坐标变了,到了一定程度还会突然一下退回原来的位置,再来,我们查下Mathf.Repeat这个函数的作用和Time.time的含义
Time.time是指游戏开始运行的时间,而Mathf.Repeat的作用是返回0到tileSizeZ之间的数,如果过大就减去n*tileSizeZ,使返回值处于0到tileSizeZ之间
那这句的意思很简单了,就是按照scrollSpeed的速度返回0到tileSizeZ之间的值,background对象中scrollSpeed = -0.25,tileSizeZ = 30
综合起来,就是让背景沿z轴负向移动,看起来像飞船在向前飞,要是再使0和30的位置背景是相同的,那人就会感觉像是连续不断移动的背景了
我们实际组建的工程,背景长度可能和它有所不同,需要自己调整一下
,