Unity——音乐、音效

news2025/4/19 22:55:10

在游戏运行的过程中,音效的播放时机与游戏当前内容密切相关,而且随着场景的变化、剧情的推进,背景音乐也需要适时切换,所以恰当地控制音乐和音效的播放非常重要。音乐和音效的播放、停止、切换和音量变化等,都需要由脚本控制。


一、用脚本控制音乐播放

简单来说只要有Audio Source组件和音频资源就可以播放音乐了。但通常还需要停止、切换音乐等,下文用一个示例脚本说明音乐的播放方法,步骤如下

  1. 创建脚本TestAudio,挂到任意物体上
  2. 创建音源物体,默认物体名为Audio Source

脚本内容如下 

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

public class TestAudio : MonoBehaviour
{
    //从外部指定声音片段
    public List<AudioClip> clips;
    //音源组件
    AudioSource audio;

    void Start()
    {
        //获取音源组件
        GameObject go = GameObject.Find("Audio Source");
        audio = go.GetComponent<AudioSource>();
        //先停止播放
        audio.Stop();
        //不循环
        audio.loop=false;
    }

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Alpha1))
        {
            //切换到音乐0并播放
            audio.clip=clips[0];
            audio.Play();
        }
        if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            //切换到音乐1并播放
            audio.clip = clips[1];
            audio.Play();
        }
        //按空格键 暂停/继续
        if (Input.GetKeyDown(KeyCode.Space))
        {
           if(audio.isPlaying)
            {
                audio.Pause();
            }
            else
            {
                audio.UnPause();
            }
        }
    }
}

 脚本功能是按数字播放第一段音频,按播放第二段,按空格可以暂停或继续播放

脚本用到了一个公开的列表字段保存音频资源。要为变量clips赋初始值。

上面演示了Audio Source组件的常用方法,音源的属性都可以用脚本修改

二、添加音效

在Unity中使用音乐和音效的方法是相同的,但有一些关键点要注意。

首先,一个音源同一时刻只能播放一个音频。换句话说,如果有10个音效同时播放,就需要10个音源。因此一般游戏中的每个角色身上都带有一个Audio Source组件,如敌人会叫喊,主角会挥动武器,那么就在每个敌人和主角身上都挂一个Audio Source组件。如果主角的武器音效、跳跃音效和受伤音效可能会同时播放,那么可以在主角身上挂3个Audio Source组件,分别对应一种音效(当然,也可以把Audio Source组件放在其他物体上)。

其次,添加音效的难点在于音效播放的时机,音效比角色动作稍早或稍晚播放都不好。而且根据游戏逻辑,同样的动作有时需要配合音效,又是不需要,那么弄清楚播放音效的条件也很重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/940319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

堆,堆排序和TOP—K问题(C语言版)

前言 堆是一种重要的数据结构&#xff0c;堆分为大根堆和小根堆&#xff0c;大根堆堆顶的数据是最大的&#xff0c;小根堆堆顶的数据是最小的&#xff0c;堆在逻辑结构上是一颗完全二叉树&#xff0c;这棵树中如果满足根节点大于左右子树&#xff0c;每个节点都满足这个条件就是…

capl使用汇总

数组类 2维数组定义 dword data[DIDN][100];其中数组的类型是dword&#xff0c;二维数组的元素个数是DIDN值&#xff0c;第二维100表示每个数组data[i]的都是一个一维数组并且这个一维数组是100个dword数组成的 结构体 结构体定义 以下的结构体类型supDTC&#xff08;支持…

Skip Connection——提高深度神经网络性能的利器

可以参考一下这篇知乎所讲 https://zhuanlan.zhihu.com/p/457590578

禅道后台命令执行漏洞二

漏洞简介 禅道是第一款国产的开源项目管理软件。它集产品管理、项目管理、质量管理、文档管理、 组织管理和事务管理于一体&#xff0c;是一款专业的研发项目管理软件&#xff0c;完整地覆盖了项目管理的核心流程。 禅道管理思想注重实效&#xff0c;功能完备丰富&#xff0c;…

LeetCode--HOT100题(44)

目录 题目描述&#xff1a;230. 二叉搜索树中第K小的元素&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;230. 二叉搜索树中第K小的元素&#xff08;中等&#xff09; 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你…

网络安全(黑客技术)0基础学习手册

目录梗概 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01; 网络安全可以基于攻击和防御视角来…

prometheus+cadvisor监控docker容器

一、安装cadvisor docker pull google/cadvisor:latest二、运行容器 docker run -d \--volume/:/rootfs:ro \--volume/var/run:/var/run:rw \--volume/sys:/sys:ro \--volume/var/lib/docker/:/var/lib/docker:ro \--publish8088:8080 \--detachtrue \--namecadvisor \--priv…

【FAQ】从存储权限看HarmonyOS 3.0中应用适配

问题背景&#xff1a; HarmonyOS 3.0发布了&#xff0c;之前开发的Android的应用&#xff0c;发现系统选项中存储权限部分有变化&#xff0c;如下图&#xff1a; ”存储“权限变为”媒体和文件“&#xff0c;且只能访问”仅媒体“的文件目录。因为项目需要读取本地导入存储文件…

基金市场的冷热传递什么信号?

摘要及声明 1&#xff1a;本文主要利用实际数据进行检验&#xff0c;从定量角度分析基金发行情况与股票市场之间的关系&#xff1b; 2&#xff1a;本文主要为理念的讲解&#xff0c;模型也是笔者自建&#xff0c;文中假设与观点是基于笔者对模型及数据的一孔之见&#xff0c…

【分享】PDF如何拆分成2个或多个文件呢?

当我们需要把一个多页的PDF文件拆分成2个或多个独立的PDF文件&#xff0c;可以怎么操作呢&#xff1f;这种情况需要使用相关工具&#xff0c;下面小编就来分享两个常用的工具。 1. PDF编辑器 PDF编辑器不仅可以用来编辑PDF文件&#xff0c;还具备多种功能&#xff0c;拆分PDF文…

【python知识】用 Tkinter实现“剪刀-石头-布”和“弹球游戏 ”

一、提要 Tkinter是一个Python内置模块&#xff0c;它提供了一个简单易用的界面来创建GUI。 在实现一些动态的画面、如游戏还是需要一些创新性思维的。在本文中&#xff0c;我们将使用 Tkinter 探索 Python GUI 编程。我们将介绍 Tkinter 的基础知识&#xff0c;并演示如何使用…

【Web系列二十四】使用JPA简化持久层接口开发

目录 环境配置 1、引入依赖 配置文件 代码编写 实体类创建 JPA常用注解 Service与ServiceImpl Service ServiceImpl Controller Dao 三种实现Dao功能方式 1.继承接口&#xff0c;使用默认接口实现 2.根据接口命名规则默认生成实现 3.自定义接口实现(类似MyBatis…

Windows-docker集成SRS服务器的部署和使用

Windows-docker集成SRS服务器的部署和使用 一、Windows Docker安装 Docker Desktop 官方下载地址&#xff1a; https://docs.docker.com/desktop/install/windows-install/ 下载windows版本的就可以了。 注意&#xff1a;此方法仅适用于 Windows 10 操作系统专业版、企业版、…

C语言之数组题

目录 1.使用函数实现数组操作 2.冒泡排序 3.三子棋 4.【一维数组】交换数组 5.扫雷 6.概念辨析tips 我又来了&#xff0c;今天是数组题&#xff0c;本人还在补军训真的热&#xff01;&#x1f197; 1.使用函数实现数组操作 2.冒泡排序 3.三子棋 4.【一维数组】交换数组 …

Python自动化测试之线上流量回放:录制、打标、压测与平台选择

在自动化测试中&#xff0c;线上流量回放是一项关键技术&#xff0c;可以模拟真实用户的请求并重现线上场景&#xff0c;验证系统的性能和稳定性。本文将介绍Python自动化测试中的线上流量回放技术&#xff0c;并提供实战代码&#xff0c;帮助你了解流量的录制、打标、压测发起…

Ubuntu安装JDK8(直接下载jdk压缩包方式)

1.官网下载JDK 地址: https://www.oracle.com/java/technologies/downloads/ 选择相应的 .gz包下载 2.解压缩,放到指定目录 创建目录: sudo mkdir /usr/lib/jvm 解压缩到该目录: sudo tar -zxvf jdk-8u381-linux-x64.tar.gz -C /usr/lib/jvm 3.配置环境变量 sudo vim ~/.ba…

跨专业申请成功|金融公司经理赴美国密苏里大学访学交流

J经理所学专业与从事工作不符&#xff0c;尽管如此&#xff0c;我们还是为其成功申请到美国密苏里大学经济学专业的访问学者职位&#xff0c;全家顺利过签出国。 J经理背景&#xff1a; 申请类型&#xff1a; 自费访问学者 工作背景&#xff1a; 某金融公司经理 教育背景&am…

YUV数据图形化理解

以下为音视频基础数据的图像化展示&#xff0c;方便大家理解 RGB24 RGB交替排列&#xff0c;RGBRGBRGB 占用空间Width*Height*3 YUV420P YU12(I420) 每4个Y分量&#xff0c;共一个UV分量 Y是连续的&#xff0c;U也是连续的&#xff0c;V也是连续的 占用空间 Width*Height …

北京筑龙受邀出席中物联“采购供应链中国行—走进雄安”活动

日前&#xff0c;“采购供应链中国行—走进雄安”活动在河北雄安新区成功举办&#xff0c;来自30家相关单位的50余名领导和代表参加了本次活动。活动由中国物流与采购联合会公共采购分会主办&#xff0c;中国物流与采购联合会采购委、中国雄安集团有限公司、河北雄安新区招标投…