Unity进阶--声音管理器学习笔记

这篇具有很好参考价值的文章主要介绍了Unity进阶--声音管理器学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 声音管理器
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AudioManager : MyrSingletonBase<AudioManager>
{
    //环境音
    private AudioSource enPlayer;
    //音效
    private AudioSource sePlayer;
    //音乐
    private AudioSource Player;

    void Start() {
        //初始化
        Player = gameObject.AddComponent<AudioSource>();
        Player.loop = true;
        sePlayer = gameObject.AddComponent<AudioSource>();
        enPlayer = gameObject.AddComponent<AudioSource>();
        GameObject.DontDestroyOnLoad(gameObject);
    }

#region 声音部分
    //通过文件名找到对应音频,并播放
    public void PlayMusic(string name, float volume = 1){
        AudioClip clip = Resources.Load<AudioClip>(name);
        PlayMusic(clip, volume);
    }

    public void PlayMusic(AudioClip clip, float volume = 1){
        if (Player.isPlaying) {
            Player.Stop();
        }
        //音量大小
        Player.volume = volume;
        Player.clip = clip;
        Player.Play();
    }
    
    public void StopMusic() {
        Player.Stop();
    }

    //改变声音
    public void ChangeMusicVolume(float volume) {
        Player.volume = volume;
    }
#endregion

#region 环境音部分
    //播放环境音
    public void PlayEnMusic(string name, float volume = 1){
        AudioClip clip = Resources.Load<AudioClip>(name);
        PlayEnMusic(clip, volume);
    }

    public void PlayEnMusic(AudioClip clip, float volume = 1){
        if (enPlayer.isPlaying) {
            enPlayer.Stop();
        }
        //音量大小
        enPlayer.volume = volume;
        enPlayer.clip = clip;
        enPlayer.Play();
    }
    
    //停止环境音
    public void StopEnMusic() {
        enPlayer.Stop();
    }

    public void ChangeEnMusicVolume(float volume) {
        enPlayer.volume = volume;
    }
#endregion

#region 音效部分
    public void PlaySeMusic(string name, float volume = 1){
        AudioClip clip = Resources.Load<AudioClip>(name);
        PlaySeMusic(clip, volume);
    }

    public void PlaySeMusic(AudioClip clip, float volume = 1){
        sePlayer.PlayOneShot(clip, volume);
    }
#endregion

#region 环绕物体音
    public void PlaySeSoundOnObject(string name, GameObject go, float volume = 1){
        AudioClip clip = Resources.Load<AudioClip>(name);
        PlaySeSoundOnObject(clip, go, volume);
    }

    public void PlaySeSoundOnObject(AudioClip clip, GameObject go, float volume = 1){
        AudioSource player =go.GetComponent<AudioSource>();
        if(player == null) {
            player = go.AddComponent<AudioSource>();
        }
        player.volume = volume;
        player.PlayOneShot(clip);
    }
#endregion
}

  • 放进总管理器里

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Managers
    {
       //声音管理器
       public static AudioManager m_Audio = AudioManager.Instance;
    }
    
    

Unity进阶--声音管理器学习笔记,unity游戏开发,unity,学习,笔记

建个Resources文件夹把声音放进去就可以使用了。文章来源地址https://www.toymoban.com/news/detail-604086.html

到了这里,关于Unity进阶--声音管理器学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity进阶学习笔记:消息框架

    1 使用消息框架的目的 对于小型游戏,可能不需要任何框架,而是让各个游戏脚本直接相互通信。如要实现玩家受到攻击血量减少,通过玩家控制类向血条脚本发送消息减少血量。但是这样直接通信会导致各脚本通信关系记为复杂,并且每一个脚本都和多个脚本有联系,导致

    2024年02月06日
    浏览(40)
  • unity进阶学习笔记:photonServer测试

    photonServer是由photon发布的一个网络框架,其封装了UDP和TCP通信机制让用户可以直接调用API实现网络游戏通信 1 photonServer下载安装 进入Photon官网的SDK选项,选择下载Server。目前Server版本已经更新到v5,这里我为了和教程保持一致下载的是老版本v4.下载完后按照安装指引安装即可

    2024年02月04日
    浏览(39)
  • Unity进阶-ui框架学习笔记

    笔记来源课程:https://study.163.com/course/courseMain.htm?courseId=1212756805_trace_c_p_k2_=8c8d7393c43b400d89ae94ab037586fc 最上面的管理层(canvas) 调整下运行顺序,让他快于controller panel的控制层 panel下面的组件层 使用

    2024年02月16日
    浏览(50)
  • unity学习笔记----游戏练习06

    一、豌豆射手的子弹控制 创建脚本单独控制子弹的运动 用transform来控制移动     void Update()     {         transform.Translate(Vector3.right * speed * Time.deltaTime);     } 创建一个控制子弹速度的方法,方便速度的控制 private void SetSpeed(float speet)     {         this.speed = speet;     } 回到

    2024年01月25日
    浏览(45)
  • unity学习笔记----游戏练习05

    一、阳光的收集和搜集动画开发 1.收集阳光的思路:当鼠标点击到阳光的时候,就可以进行收集了。可以通过为添加一个碰撞器来检测Circle Collider 2D 编写脚本: 在SunManager中写一个增加阳光的方法     //增加阳光     public void AddSubSun(int Point)     {         sunPoint += Point;  

    2024年02月20日
    浏览(35)
  • Unity学习笔记[一] RollBall小游戏

    目录 一、适配vs 二、初识Unity 2.1 unity核心模块 2.2 Unity基本操作和场景操作 2.3 世界坐标系和局部坐标系 2.4 工具栏 QWER 三、基础知识 3.1 基本组件 3.2 刚体组件 3.2.1 获取刚体组件 3.2.2 给刚体施加力 3.3 三维向量Vector3 3.4 通过按键控制左右运动 3.5 控制相机位置和跟随 3.6 物体

    2023年04月09日
    浏览(45)
  • 【Unity】Unity开发学习和项目实践02——创建第一个Unity项目和游戏物体

    创建第1个Unity项目 打开Unity hub,点击新项目 以下有四处地方需要注意选择: 1.Unity编辑器版本 2.项目模板 3.项目名称 4.项目保存位置 点击创建项目 ok,进入编辑器了 把编辑器界面布局稍微改一下,改成2by3 点击Edit 点击 project settings,这是对我们所创建工程的设置 此外还有对

    2024年01月25日
    浏览(56)
  • 零基础学习Unity 教你掌握游戏开发!!!

      Unity 是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案 ,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主

    2023年04月21日
    浏览(55)
  • Unity-3DRPG游戏 学习笔记(1)--使用URP渲染管线

    教程地址: Unity2020 3DRPG游戏开发教程|Core核心功能01:Create Project 创建项目导入素材|Unity中文课堂_哔哩哔哩_bilibili 创建URP通用渲染管线(2021版本) 1. 打开:Windows--Package Manager--左上角下拉选择Unity Registry--搜索Universal RP--Install 2. Project窗口--Assets--右键Create--Rendering--URP Asstes

    2024年02月11日
    浏览(46)
  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发,在最开始介绍场景这个概念的时候就已经提及,这个场景可以是一张地图,或者是一个对战房间等等,所以显然这个场景可以有多个,并且可以从一个场景切换到另外一个场景,那么在Unity中如何进行场景切换,以及

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包