Unity学习笔记(8)

完成了视频十一~十四

1.今天算是知道昨天为什么用if(other.tag =="Boundary")就return了,因为接下来还要有一个判断,if(other.tag =="Player"),就把Player炸掉。如果用之前我写的方式,变成两个if嵌套了,如果层级更多,可读性就会变得很低了。

2.第十二个视频Game Controller,又用了和视频不太一样的处理方式,回顾了一下有两点差别:

    1)移动的脚本,教程里直接把子弹的Mover直接挂到了asteroid上,重新设置了一个speed参数,而我在asteroid的RandomRotator里又写了一遍,教程的好一些

    2)asteroid实例化的坐标,教程里用了个public Vector3来控制,而我直接写在了函数里,这一点没啥区别

3.之前自己就想尝试随机生成asteroird,不过instantiate的后两个参数不会填,现在知道了,position里填Vector3,rotation里填一个Quaternion(可以直接用Quaternion.identity来初始化)

4.视频十三,原本我自己已经写完了,在update函数里,用的和子弹一样的处理方法,lastStoneTime表示上一次生成石头的时间,去和一个固定的IntervalTime作比较,单独来看,已经完成的很好了。不过,教程里把它放到了Start函数中,用了一个SpawnWaves函数来控制。这样的明显区别是不能逐帧调用,只能用for循环来控制了。自己试用了一下子弹的处理方法,已经不行了(应该是因为在循环体内,不存在deltaTime的概念了)。于是顺理成章引出了协程的概念。我猜想应该是因为后续要控制游戏进程,不能简单的放在update中。

这段代码在update中可以顺利运行

5.Destory函数可以跟两个参数,gameObject和float lifetime,后面表示对象多长时间会被摧毁,配合不断实例化,其实就是对象的生命周期了

6.到了第十四个教程,终于开始搞音频了。比想象中简单,无非就是三种组件,Clips(实际的音频剪辑)、Source(我理解是控制音频的控制器)和listener(侦听器,我理解就是耳朵,放在3D场景中的不同位置,同一个声音可能会有不同的效果)。用到一个新方法GetComponent().Play();,调用AudioSource的Play方法,至于Play的是什么,在AudioSource的组件里拖个Clip进去就行了

7.除此以外的其他属性都不复杂,边播放边来回托动了一下就大致了解了,除了Reverb Zone Mix,拖了半天好像也没什么变化

看起来常用的属性就这些

看了一下,剩下的五个教程中,前三个视频加起来大约30多分钟,属于正常范围,不过最后的两个视频:拓展(包含会移动和主动进攻的敌人、滚动的背景和粒子效果等)是122分钟,移动开发(触摸和加速度输入等)是96分钟,并且——这两个教程都没有字幕!!明天把前三个学完吧,后两个得找机会了……

今天早点休息,明天过个周末

2018.10.27 23:44

你可能感兴趣的:(Unity学习笔记(8))