美文网首页
Unity开启篇(九) —— Unity声音简介(二)

Unity开启篇(九) —— Unity声音简介(二)

作者: 刀客传奇 | 来源:发表于2019-01-13 13:12 被阅读23次

    版本记录

    版本号 时间
    V1.0 2019.01.13 星期日

    前言

    Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至WindowsMacWiiiPhoneWebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。网页游戏 坦克英雄和手机游戏王者荣耀都是基于它的开发。
    下面我们就一起开启Unity之旅。感兴趣的看下面几篇文章。
    1. Unity开启篇(一) —— Unity界面及创建第一个简单的游戏 (一)
    2. Unity开启篇(二) —— Unity界面及创建第一个简单的游戏 (二)
    3. Unity开启篇(三) —— 一款简单射击游戏示例 (一)
    4. Unity开启篇(四) —— 一款简单射击游戏示例 (二)
    5. Unity开启篇(五) —— 一款简单射击游戏示例 (三)
    6. Unity开启篇(六) —— Unity动画简介 (一)
    7. Unity开启篇(七) —— Unity动画简介 (二)
    8. Unity开启篇(八) —— Unity声音简介(一)

    Polishing Sound

    到目前为止,这游戏一直很顺利 - 所有的动物都在飞向谷仓时发出声音。 但仍有一些事情没有做:

    • 拖拉机没有任何声音。
    • 当一只动物进入谷仓时没有成功的声音。
    • 如果动物撞到拖拉机,就没有死亡声音。

    添加这些声音将给这个游戏这个游戏一些真正的润色。

    1. Adding Tractor Sounds

    要在拖拉机前后移动时向拖拉机添加嗡嗡声,首先按住Control(在PC上)或Command(在Mac上),然后单击层次结构中的所有三个拖拉机。 批量添加AudioSource,然后添加拖拉机声音剪辑,就像动物声音一样。 确保选中Play On Awake

    所有拖拉机都附有声音,请单击Play按钮。

    拖拉机有声音很棒,但是在所有三个同时播放时很难区分它们。而且,它真的很响亮。

    如前所述,3D sounds可以随着音量的减小而播放,AudioListener(在这个游戏中,它在相机上)离AudioSource越远。添加衰减效果(使拖拉机距离摄像机越远,它们越安静)将使声音听起来更好。

    单击层次结构中的拖拉机tractor;在Inspector中,查看AudioSource组件。将有一个名为3D Sound Settings的下拉区域。在这里,您可以设置Doppler LevelRolloffDistance变量。

    Doppler Level正是它的声音:声音强度变化以模仿Doppler effectRolloff Level是音量从AudioListener进一步平息到它的源的距离。

    这是最接近玩家的拖拉机,因此其声音衰减应该比后两者更具戏剧性。将Volume Rolloff设置为Linear Rolloff,这将使效果更加明显。接下来,将Min Distance设置为1,将Max Distance设置为9。将Doppler Level设置为0.68。

    这将使前拖拉机在接近屏幕中间时(当它靠近摄像机上的听众时)听起来很响,并且当它离开屏幕时更安静。 单击Play以查看此内容。

    对于后两个拖拉机,它们的声音应该更像背景噪音;只有前拖拉机应该有夸张的声音。

    要调低后拖拉机的强度:

    • 1) 首先在层次结构中选择tractor2
    • 2) 将Volume Rolloff设置为Linear Rolloff
    • 3) 然后,将Min Distance设置为1,将Max Distance设置为30。
    • 4) 将Doppler Level设置为0.68。
    • 5) 接下来,在Hierarchy中选择tractor3并将Volume Rolloff设置为Linear Rolloff
    • 6) 将Min Distance设置为1,将Max Distance设置为50。将Doppler Level设置为0.68。

    单击Play并在拖拉机来回移动时聆听不同的声级。

    拖拉机声音太大,特别是其中三个一起播放。 将AudioSource上的音量滑块设置为0.4。

    如果您玩游戏的时间超过40秒,您会发现拖拉机的声音已被切断。 那是因为他们的AudioSource还没有设置为循环。 要更改此设置,请单击每个拖拉机的AudioComponentLoop框。

    2. Adding Hit Sounds

    不幸的是,当动物撞到拖拉机时,它们会受到撞击。 更不幸的是,当发生这种情况时,目前还没有声音! 如前所述,拖拉机正在使用Unity物理引擎并监听与动物的碰撞。 当动物与拖拉机碰撞时,它会告诉动物死亡 - 那就是声音需要播放的时候。

    首先,您需要将死亡声音的AudioClip附加到Tractor组件。 去做这个:

    • 1) 按住Control(在PC上)或Command(在Mac上)。 然后单击Hierarchy中的三个拖拉机。
    • 2) 选择三个拖拉机GameObjects,然后单击InspectorTractor组件的Death Sound字段旁边的dot
    • 3) 接下来,从下面显示的Select Audio Clip弹出窗口中选择death声音文件。

    要编写动物死亡声音,首先双击Tractor C#脚本,在编辑器中打开它(在Assets \ RW \ Scripts文件夹中找到)。 在if语句的右括号之前,添加以下代码:

    audioSource.PlayOneShot(deathSound);
    

    最后结果如下所示:

    void OnCollisionEnter(Collision col) 
    {
        if (col.gameObject.GetComponent<Animal>() && !col.gameObject.GetComponent<Animal>().isDead) 
        {
            Destroy(col.gameObject);
            audioSource.PlayOneShot(deathSound);
        }
    }
    

    Control-S(在PC上)或Command-S(在Mac上)以保存脚本。

    PlayOneShot()播放一次声音。 您正在传递您添加到拖拉机的声音,然后从拖拉机上播放一次。 拖拉机(而不是动物)应该播放声音的原因是,当动物被拖拉机击中时,作为动物的文字GameObject被删除。 由于它不再存在,动物无法发出声音。 您可以关闭网格并以这种方式播放动物的声音,但这更复杂。

    使用PlayOneShot()的好处是,即使再次调用PlayOneShot(),声音也会完成。 如果不是这种情况,动物的声音会相互切断,听起来不稳定。

    点击播放并通过有意将动物放入拖拉机而不是为了谷仓的安全而测试。 当它们与拖拉机碰撞时,您应该听到“挤压”的声音。

    3. Adding Celebration Sounds

    此时唯一缺失的声音是动物进入谷仓时的成功声音。

    添加这些:

    • 1) 首先单击层次结构中的barn对象。
    • 2) 在Inspector中,向其中添加AudioSource组件。
    • 3) 然后,将win声音从Assets ▸ RW ▸ Sounds拖动到AudioClip字段。
    • 4) 这一次,请确保关闭Play On Awake。 只有当动物进入谷仓时才会播放此声音。
    • 5) 双击Assets ▸ RW ▸ Scripts中的Barn脚本。
    • 6) 在if语句的左大括号下面添加以下内容:
    if(col.gameObject.GetComponent<Animal>())
    

    如下所示:

        
    void OnCollisionEnter(Collision col)
    {
        if(col.gameObject.GetComponent<Animal>())
        {
            GetComponent<AudioSource>().Play();
            Destroy(col.gameObject);
        }
    }
    

    这告诉谷仓,当动物与它碰撞时,它应该获得AudioSource组件并播放它。 保存更改,然后单击播放并将动物放入谷仓。 现在,当动物进入谷仓时,会发出成功的声音。


    Finishing Touches: Varying Sound Effects

    最后一点点润色可以添加,只需很少的努力。 一遍又一遍地听到完全相同的声音很烦人。 为了保持声音更清新,更少刺激,对一些变量进行编码。

    Scripts文件夹中打开Animal C#脚本。 在public bool isDead = false下添加以下内容。

    void Start()
    {
        AudioSource audioSource = GetComponent<AudioSource>();
        audioSource.pitch = Random.Range(0.8f, 1.5f);
        audioSource.Play();
    }
    

    此代码获取AudioSource组件并将音高变量设置为0.8到1.5之间的随机值。 现在,单击Play并启动动物。 他们的动物声音每次都会变化。 很酷,对吗?

    很棒的工作将你的第一个音效添加到Unity游戏! 现在,你的动物可以愉快地moooinkbaa进入谷仓 - 当然,除非他们被拖拉机击中。

    为了更有趣,尝试为每个拖拉机添加不同的音高,向动物进入谷仓时播放的成功声音以及死亡声音。 您还可以尝试为每只动物添加不同的动物声音和独特的死亡声音(虽然这需要更多的编码,以及查找更多的音频文件)。

    要了解有关Unity声音引擎的更多信息,请查看Unity的Adding Sounds Effects to Your Game的实时培训。 另外,请查看 AudioSourceAudioClip Unity文档。

    后记

    本篇主要讲述了Unity声音简介,感兴趣的给个赞或者关注~~~

    相关文章

      网友评论

          本文标题:Unity开启篇(九) —— Unity声音简介(二)

          本文链接:https://www.haomeiwen.com/subject/snvkdqtx.html