Skip to content

Latest commit

 

History

History
155 lines (103 loc) · 6.44 KB

10.Making some noises on music.md

File metadata and controls

155 lines (103 loc) · 6.44 KB

< 前一篇 后一篇 >

加入声音

现在我们使用粒子提升了游戏的视觉效果,接下来,我们将添加一些音效和音乐到游戏里。它在Unity里非常简单,但它在游戏里确是非常重要的。

你将学到在哪里可以找到音效和音乐,获取它们,通过脚本在游戏里播放它们。

:Unity 5已经发布了很多新的Audio工具,然而,我们不会在教程里使用它们新的特性。

寻找音效和音乐

Damien最近的participated in an interesting subject on Stack Exchange就是关于这个主题的。

在我们看来,一个游戏开发者可以:

  • 买声音
  • 认识/聘用一个音乐人
  • 从sound banks里找免费的 (像 FindSoundsFreesound)
  • 自己录制

或者是Damien的最爱的方式:

  • 使用 BFXR 制作chiptune (8-bit)声音 (基础依靠 SFXR,但使用网页版本是非常有用的)

Matthieu:我为一个朋友的短期学校项目制作过一些音效和歌曲,我当时时个鼓手,绝对不是一个音乐制作者。

不过,在Freesound的帮助下,用了一点创造力和十几个小时的时间,我完成(便宜的)整个游戏的配乐。

我不建议这样子去做歌曲(找一个音乐人,做一个交易,这样比较好),但用足够的时间和一个好的工具,你肯定可以制作出非常不错的音效。它是可行的:有创造力的

关于音乐,得看你要啥:

  • Jamendo 有大量的艺术家,小心商业用途的许可
  • Bosca Ceoil 是一个来自Terry Cavanagh制作音乐的简单软件

Damien:这是我遇到艺术家 Spintronic 的方式,我真的非常喜爱他的音乐,他非常友好的授权我在The Great Paper Adventure里使用它们

本教程的素材

制作或找到一个爆炸和射击的音效,如果你比较懒,你可以使用我们的:

本教程将使用The Great Paper Adventure里的一个音轨,由Spintronic编写:

导入Unity

将这4个音乐文件拖到"Sounds"目录里。

齐活儿!

播放音乐

要播放音乐,简单的将音乐文件拖到"Hierarchy"里即可。

Music object

注意"Mute"选择框,当你做许多测试的时候,它将会用到。

播放音效

游戏里,音乐是一直播放的,而音效是在需要的时候触发。

所以,我们仍然有一个简单的方法,就像"SpecialEffectsHelper"的代码,我们需要一个脚本,可以在任何地方调用 它。

创建一个新脚本"SoundEffectsHelper":

using UnityEngine;
using System.Collections;

/// <summary>
/// Creating instance of sounds from code with no effort
/// </summary>
public class SoundEffectsHelper : MonoBehaviour
{

  /// <summary>
  /// Singleton
  /// </summary>
  public static SoundEffectsHelper Instance;

  public AudioClip explosionSound;
  public AudioClip playerShotSound;
  public AudioClip enemyShotSound;

  void Awake()
  {
    // Register the singleton
    if (Instance != null)
    {
      Debug.LogError("Multiple instances of SoundEffectsHelper!");
    }
    Instance = this;
  }

  public void MakeExplosionSound()
  {
    MakeSound(explosionSound);
  }

  public void MakePlayerShotSound()
  {
    MakeSound(playerShotSound);
  }

  public void MakeEnemyShotSound()
  {
    MakeSound(enemyShotSound);
  }

  /// <summary>
  /// Play a given sound
  /// </summary>
  /// <param name="originalClip"></param>
  private void MakeSound(AudioClip originalClip)
  {
    // As it is not 3D audio clip, position doesn't matter.
    AudioSource.PlayClipAtPoint(originalClip, transform.position);
  }
}

将此脚本添加到"Hierarchy"里的"Scripts"对象里,并将音效文件拖到"Inspector"对应的文本域里。

Script for sounds

然后:

  1. "HealthScript"里,在爆炸后调用SoundEffectsHelper.Instance.MakeExplosionSound();
  2. "PlayerScript"里,在weapon.Attack(false);后调用SoundEffectsHelper.Instance.MakePlayerShotSound();
  3. "EnemyScript"里,在weapon.Attack(true);后调用SoundEffectsHelper.Instance.MakeEnemyShotSound();

运行游戏,听一下,是不是有音乐和音效了!

:这个方法对于本教程或一个小项目是足够了,对大项目来说,它可能太轻量了而无法管理上百个音效

下一步

我们刚刚学习了在游戏中如何使用音效和音乐。

对于shmup 横向卷轴射击游戏来将,我们有了一个非常好的基础。你可以制作更长的关卡,就和我们在介绍时给你的demo差不多了。

你可以开始制作你自己的图像,增加enemies,背景元素,你也可以在关卡最后增加一个boss,它有一点点麻烦,但挑战和设计决策真的非常有趣。

我们离完成一个游戏还有很远,但我们将停留在这个阶段。

在下一章节,我们将增加菜单,以便我们可以开始和重玩困难的关卡。

< 前一篇 后一篇 >