IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 【Unity】Audio Source组件——用代码动态控制音效的播放、暂停 -> 正文阅读

[游戏开发]【Unity】Audio Source组件——用代码动态控制音效的播放、暂停

1.代码控制播放、暂停、停止

给游戏物体添加Audio Source组件
把音频文件拖入Audio Source组件的AudioCilp中
在这里插入图片描述
创建一个脚本并挂载

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

public class Lesson20 : MonoBehaviour
{
    //声明一个AudioSource类型变量
    AudioSource audioSource;

    void Start()
    {
        //获取AudioSource组件
        audioSource = this.GetComponent<AudioSource>();
    }
    void Update()
    {
        //1.播放
        //  按下P键播放
        if (Input.GetKeyDown(KeyCode.P))
        {
            audioSource.Play();

            //补充:延迟播放(参数1 延迟几秒)
            //audioSource.PlayDelayed(3);
        }

        //2.暂停
        //  按下空格暂停播放
        if (Input.GetKeyDown(KeyCode.Space))
        {
            audioSource.Pause();

            //补充:停止暂停,和暂停后再Play效果一样
            //audioSource.UnPause();
        }

        //3.停止播放
        //  按S键停止播放
        if (Input.GetKeyDown(KeyCode.S))
        {
            audioSource.Stop();
        }
    }
}

2.如何检测音效播放完毕

如果我们希望音乐播放完毕后 做一些事情
就需要检测音乐是否播放完毕

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

public class Lesson20 : MonoBehaviour
{
    //声明一个AudioSource类型变量
    AudioSource audioSource;

    void Start()
    {
        //获取AudioSource组件
        audioSource = this.GetComponent<AudioSource>();
    }
    void Update()
    {
        //使用.isPlaying来检测(返回值是bool)
        if (audioSource.isPlaying)
        {
            print("播放中");
        }
        else
        {
            print("播放结束了");
        }
    }
}

3.如何动态控制音效播放

方式一:直接在要播放音乐的对象上挂载脚本 来控制播放
1.在对象身上的脚本声明一个AudioSource类型的变量,
2.再通过.GetComponent获取挂载的AudioSource音效源脚本
3.控制此音效源脚本,实现动态控制播放
上面的知识点一就是用的这种方法

方式二:实例化挂载了音效源脚本的对象
(此方式用的较少,因为还要管理音效预制体的销毁)
1.把要播放的音效制作成预制体 且 勾选Play On Awake参数
在这里插入图片描述
2.给场景中一个对象挂载脚本

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

public class Lesson20 : MonoBehaviour
{
    //外部拖入音效预制体
    public GameObject obj;

    void Start()
    {
        //实例化外部拖入的音效预制体
        GameObject.Instantiate(obj);
    }
}

4.如此以来 只要这个预制体一被实例化,就会立刻播放预制体音效
在这里插入图片描述
方式三:用一个AudioSource来控制播放不同的音效
AudioSource组件的AudioClip参数是可以通过代码编辑的
在这里插入图片描述
并且 还可以声明AudioClip类型的变量,从而从面板拖入音效源:
在这里插入图片描述
面板拖入拖入:
在这里插入图片描述

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

public class Lesson20 : MonoBehaviour
{
    //从外部面板拖入的音频
    public AudioClip clip;

    void Start()
    {
        //获取一个AudioSource组件
        //  获取了自己挂载的对象的AudioSource组件
        AudioSource audio = this.gameObject.GetComponent<AudioSource>();
        //让获取到的这个AudioSource组件的AudioClip参数 = 我从外部拖入的音频文件
        audio.clip = clip;
        //播放
        audio.Play();
    }
}
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:12:26  更:2022-10-08 21:13:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/17 5:51:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码