【unity】【C#】游戏音乐播放和发布

今天我们来认识一下有关 unity 音乐的一些知识

我们先创建 AudioClips 文件夹,这个文件夹通常就是 unity 中存放音乐的文件夹,然后拖进音乐文件进去

这里为大家提供了两个音乐,有需要可以自取

百度网盘:https://pan.baidu.com/s/1D45NK5T2gZ0olFLljVHHSg?pwd=nouu

提取码:nouu

我们再创建空项目,并添加组件 Audio Source ,将音频拖入AudioClip 运行就可以听到声音了

点击 Game 场景的声音图标就可以在运行时起到静音的效果

也可以取消勾选 Play On Awake 实现运行时不会自动播放音乐

还有一点需要注意的是,我们 必须 在场景中的 有且仅有 一个对象中勾选上 Audio Listener ,确保运行时有声音出现,之所以有且仅有一个,是因为每个 Audio Listener 都会单独运行,如果多个一起运行,可能会导致不必要的错误

为了更加了解音乐调用在unity执行过程中的应用,我们通过代码来实现部分功能

先创建 C# 文件并拖拽进当前对象的下方,再将音乐源 Audio Source 放入代码块里

csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EP28_01_AudioSource : MonoBehaviour
{
    public AudioSource audioSource;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

根据前面内容我们可以知道,如果取消勾选 Play On Awake 会导致运行时场景没有声音,但是如果我们再代码的 start 语句块中添加下面这句话,再次运行就能有声音了

csharp 复制代码
        audioSource.Play();

同理,将 Play 改成 Stop 就能够实现代码的停止播放

csharp 复制代码
        audioSource.Stop();

不仅如此我们还可以通过鼠标、键盘等的输入,改变音乐的播放情况,比如说下面这一块代码,我们先调用 audioClip 再自定义方法 PlayBtnSound,实现通过按下鼠标左键实现音乐的播放

同样需要记得将想要播放的音频拖拽到代码块的 audioClip 里

csharp 复制代码
public class EP28_01_AudioSource : MonoBehaviour
{
    public AudioSource audioSource;
    public AudioClip audioClip;//为代码调用audioClip
    // Start is called before the first frame update
    void Start()
    {
        //audioSource.Play();
        //audioSource.Stop();
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetMouseButtonDown(0))//按下鼠标左键
        {
            PlayBtnSound();
        }
    }
    private void PlayBtnSound()
    {
        //类名     .成员名 
        audioSource.clip = audioClip;//调用audioClip
        //类名     .方法名
        audioSource.Play();
    }
}

关于游戏的打包发布就比较简单了,按下图这个顺序保存文件到自己想保存的位置,尽量避免路径中存在英文,

然后点开 project.exe 文件就可以打开这个游戏了,如果你想把这个游戏发给别人,需要回到整个打包文件夹下,将整个打包文件一起发送,这样游戏才能运行。

相关推荐
WarPigs1 小时前
Unity在Create菜单添加创建自定义脚本模板选项
unity
czhc11400756633 小时前
退出防呆:用“总闸“收口所有退出入口,以及三个并发语法坑
开发语言·c#
郝学胜-神的一滴4 小时前
C++ Templates 01:拨开迷雾,读懂C++模板经典著作
开发语言·c++·程序人生·游戏·游戏引擎·软件构建
淡海水5 小时前
02-01-原理篇-Mark-Sweep与变种算法
算法·unity·c#·游戏引擎·.net·gc
babywang06 小时前
Unity笔记--塔防游戏中的ECS架构:从原理到实战的全面解析
unity·ecs架构
UIU1149 小时前
同一个变量在两个 .c 文件里类型不一致,程序会怎样?
c++·学习·c#
波力海苔夹心脆67520 小时前
C# 值类型与引用类型详解:存储位置、赋值机制、参数传递、相等比较、装箱拆箱与常见陷阱
开发语言·jvm·经验分享·笔记·c#·.net
估值探索者20 小时前
【Python量化策略实战 #02】多因子合成mom和vol两因子打分合成
开发语言·c++·python·数据挖掘·c#
babywang01 天前
Unity笔记--AssetBundle详解
unity·游戏引擎
魔士于安1 天前
经典Game
游戏·游戏引擎·贴图·技术美术·模型