Unity 3D\2D手机游戏开发:从学习到产品(第3版)
上QQ阅读APP看书,第一时间看更新

2.8 声音与特效

现在的游戏是无声的,我们将添加几个简单的音效,并增加一个爆炸效果。

步骤 01 在Project窗口中单击鼠标右键,选择【Import Package】→【Custom Package】,然后到资源文件目录rawdata\packages浏览Unity包文件,选择ShootingFX.unitypackage,将其打开,选择【Import】导入到当前工程中,如图2-34所示。在这个包中包含了几个音效文件和一个爆炸特效Prefab,它们都会被导入到Assets目录的FX文件夹中。

图2-34 导入音效素材

.unitypackage文件是Unity专用的资源包,在Project窗口中选择资源,如脚本、模型、声音等,然后单击鼠标右键并选择【Export Package】,可以将所选资源导出为.unitypackage格式的包,然后重用到其他Unity工程中。

步骤 02 选择主角飞船游戏体,在菜单栏中选择【Component】→【Audio】→【Audio Source】,为主角添加一个Audio Source组件,凡是需要发声的游戏体,必须有这个组件。

步骤 03 打开Player.cs脚本,添加并修改代码如下:

            public AudioClip m_shootClip;        // 声音
            protected AudioSource m_audio;       // 声音源
            public Transform m_explosionFX;      // 爆炸特效

             void Start () {
                m_transform = this.transform;
                m_audio = this.GetComponent<AudioSource>();
             }

① m_shootClip属性是射击的声音,在后面会将它和音效文件关联。

② m_audio属性是声音源组件,用于播放声音,在Start函数中将其指向实际的声音源组件。

步骤 04 在Player.cs脚本的Update函数中添加播放声音的代码:

                        if ( Input.GetKey( KeyCode.Space ) || Input.GetMouseButton(0) )
                       {
                          Instantiate( m_rocket, m_transform.position, m_transform.rotation );

                          // 添加代码,播放射击声音
                          m_audio.PlayOneShot(m_shootClip);
                       }

步骤 05 在Player.cs脚本的OnTriggerEnter函数中添加创建爆炸特效的代码:

                      if (m_life <= 0)
                      {
                          //添加代码,当生命值为0后,播放爆炸特效
                          Instantiate(m_explosionFX, m_transform.position, Quaternion.identity);
                          Destroy(this.gameObject);          // 自我销毁
                      }

步骤 06 选择主角游戏体,在Project窗口的FX文件夹下分别找到shoot.WAV音效文件和Explosion.prefab爆炸特效文件,在Player组件中将其分别与m_shootClip和m_explosionFX属性关联,如图2-35所示。

图2-35 关联爆炸

步骤 07 选择爆炸特效的Prefab,为其添加一个Audio Source组件,然后在导入的FX文件夹下找到explosion.WAV文件,将其指定到Audio Source的Audio Clip中。因为默认【Play On Awake】复选框是处于选中状态,所以当爆炸特效被实例化后,会自动播放爆炸的声音。【Spatial Blend】的值默认为0,表示音效为2D音效,不会受空间环境影响,如果将其设为1,音效则变为3D音效,如图2-36所示。

图2-36 添加爆炸声音

运行游戏,可以听到射击声音,当主角死亡,会看到爆炸效果,如图2-37所示,并能听到爆炸声音。我们也需要为敌人添加同样的爆炸效果和声音,重复前面的步骤即可,这里就不再赘述。

图2-37 爆炸效果