Ruby's Adventrue游戏制作笔记(十四)Unity播放游戏音效

  • 前言
  • 一、创建背景音乐
  • 二、创建新的脚本
  • 三、在其他需要播放的所有脚本中进行操作
  • 四、给敌人添加音效
  • 五、给玩家添加移动音效
  • 系列链接



前言

本文章是我学习Unity官方项目项目所做笔记,作为学习Unity的游戏笔记,在最后一章会发出源码,如果等不及可以直接看源码,里面也有很多注释相关,话不多说,让Ruby动起来!
游戏引擎:Unity2020.3

一、创建背景音乐

创建一个空的object

unity audio souce 怎么设置 unity 播放音效_游戏引擎


添加新的组件 Audio source

unity audio souce 怎么设置 unity 播放音效_游戏制作_02


选择背景音乐

unity audio souce 怎么设置 unity 播放音效_游戏程序_03

二、创建新的脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// 播放音乐的脚本
public class AudioManager : MonoBehaviour
{

    // 获取音效
    private AudioSource audioS;
    public static AudioManager instance
    {
        get;
        private set;
    }


    void Start()
    {
        instance = this;
        audioS = GetComponent<AudioSource>();
    }

 /*   // 播放指定音效
   public void AudioPlay(AudioClip clip)
    {
        audioS.PlayOneShot(clip);
    }*/

    // 随机播放音乐的方法
    public void RandomPlay(params AudioClip[] clips)
    {
        
        int index = Random.Range(0, clips.Length);
        AudioClip clip = clips[index];
        audioS.PlayOneShot(clip);


    }
}

三、在其他需要播放的所有脚本中进行操作

unity audio souce 怎么设置 unity 播放音效_游戏制作_04


unity audio souce 怎么设置 unity 播放音效_Ruby_05


在食物的脚本中拖入音效

unity audio souce 怎么设置 unity 播放音效_Ruby_06


玩家音效

unity audio souce 怎么设置 unity 播放音效_Ruby_07


unity audio souce 怎么设置 unity 播放音效_Ruby_08


unity audio souce 怎么设置 unity 播放音效_游戏制作_09


拖入音效到预制体

unity audio souce 怎么设置 unity 播放音效_游戏引擎_10

四、给敌人添加音效

unity audio souce 怎么设置 unity 播放音效_游戏程序_11


unity audio souce 怎么设置 unity 播放音效_Ruby_12


unity audio souce 怎么设置 unity 播放音效_游戏程序_13


给敌人添加修复音效

unity audio souce 怎么设置 unity 播放音效_unity_14


unity audio souce 怎么设置 unity 播放音效_Ruby_15


unity audio souce 怎么设置 unity 播放音效_unity_16


给机器人添加移动音效

在robot添加新Audio source

设置为loop,并且将Spatial blend 设置为 3D,再设置Max Distance为10

unity audio souce 怎么设置 unity 播放音效_unity_17


可以看到音效范围

unity audio souce 怎么设置 unity 播放音效_游戏制作_18


因为音效在主相机上播放,所以要改变audio listener

unity audio souce 怎么设置 unity 播放音效_unity_19

让摄像机与机器人在一个平面上

在Ruby中创建Audio Listener,使音效在同一平面内

unity audio souce 怎么设置 unity 播放音效_Ruby_20

五、给玩家添加移动音效

因为移动是持续的,所以要设置音效播放休息时间,否则会一直播放
设置一个bool型变量判断当前音效是否播放完毕,由于音效时间为2秒,所以设置restTime为2;

unity audio souce 怎么设置 unity 播放音效_游戏程序_21


在Update中进行计时

unity audio souce 怎么设置 unity 播放音效_游戏制作_22


在相应应该播放音效的地方进行音效播放

unity audio souce 怎么设置 unity 播放音效_unity_23


unity audio souce 怎么设置 unity 播放音效_unity_24


此时播放为2秒一次。