区块链技术博客
www.b2bchain.cn

# 84.AudioManager 音频播放功能求职学习资料

D0b2wT.gif

本文介绍了# 84.AudioManager 音频播放功能求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

在上一篇,我们完成了 GUIManager。
先列出 Manager Of Managers 如下:

  • (完成) MainManager: 作为入口管理器。
  • (已经有了) EventManager: 消息管理。
  • (完成) GUIManager: 图形视图管理。
  • AudioManager: 音效管理。
  • PoolManager: GameObject管理(减少动态开辟内存消耗,减少GC)。
  • LevelManager: 关卡管理。
  • GameManager: 游戏管理。
  • SaveManager: 配置&存储管理。
  • MenuManager 菜单管理。

下一个,我们要做的就是 AudioManager 了。

播放音频功能

AudioManager,字如其意就是音效管理。在 Unity 中我们需要用到的音效 API 有,AudioClip 、AudioSource、AudioListener。相信大家对它们已经很熟悉了。

我们还是以实际的问题去出发去完成这个 AudioManager。既然是音效管理,那么它肯定要有音频播放的功能。

我们呢就先马上实现一个音频播放的逻辑,先准备一个音效,放在我们的 Resources 目录下,如下图所示。
# 84.AudioManager 音频播放功能

006tNc79gy1fzgf4x6dr8j306c01ya9y.jpg

然后直接实现我们的播放音频逻辑,代码如下:
QFramework/Example/13.AudioManager/AudioExample.cs

using UnityEngine;  namespace QFramework {     public class AudioExample : MonoBehaviour     {  #if UNITY_EDITOR         [UnityEditor.MenuItem("QFramework/Example/13.AudioManager", false, 13)]         private static void MenuClicked()         {             UnityEditor.EditorApplication.isPlaying = true;              new GameObject("AudioExample")                 .AddComponent<AudioExample>();         } #endif          private void Start()         {             gameObject.AddComponent<AudioListener>();              var audioSource = gameObject.AddComponent<AudioSource>();              var coinSound = Resources.Load<AudioClip>("coin");              audioSource.clip = coinSound;             audioSource.Play();         }     } }

执行之后,能听到我们的音频声音,并且在场景中创建了一些东西,如下图所示。
# 84.AudioManager 音频播放功能

006tNc79gy1fzgf503ayyj30kf0bpq4l.jpg

这样一个音频播放的功能就做完了。我们把以上的逻辑,整理成方法,放到我们的 AudioManager 脚本了。
代码如下所示:
Assets/QFramework/Framework/Manager/AudioManager.cs

using System.Collections; using System.Collections.Generic; using UnityEngine;  namespace QFramework {     public class AudioManager : MonoBehaviour     {         public void PlaySound(string soundName)         {             gameObject.AddComponent<AudioListener>();              var audioSource = gameObject.AddComponent<AudioSource>();              var coinSound = Resources.Load<AudioClip>("coin");              audioSource.clip = coinSound;             audioSource.Play();         }     } }

但是这样写了之后,我们的示例代码就没法访问 PlaySound 这个方法了。所以呢,要把 AudioManager 做成一个单例。
代码如下:
Assets/QFramework/Framework/Manager/AudioManager.cs
“`cs
using UnityEngine;

namespace QFramework
{
public class AudioManager : MonoBehaviour
{
private static AudioManager mInstance;

    public static AudioManager Instance     {         get         {             if (mInstance == null)             {                 mInstance = new GameObject("AudioManager").AddComponent<AudioManager>();                  DontDestroyOnLoad(mInstance);             }              return mInstance;         }     }      public void PlaySound(string soundName)     {         gameObject.AddComponent<AudioListener>();          var audioSource = gameObject.AddComponent<AudioSource>();          var coinSound = Resources.Load<AudioClip>("coin");          audioSource.clip = coinSound;         audioSource.Play();

在上一篇,我们完成了 GUIManager。
先列出 Manager Of Managers 如下:

  • (完成) MainManager: 作为入口管理器。
  • (已经有了) EventManager: 消息管理。
  • (完成) GUIManager: 图形视图管理。
  • AudioManager: 音效管理。
  • PoolManager: GameObject管理(减少动态开辟内存消耗,减少GC)。
  • LevelManager: 关卡管理。
  • GameManager: 游戏管理。
  • SaveManager: 配置&存储管理。
  • MenuManager 菜单管理。

下一个,我们要做的就是 AudioManager 了。

播放音频功能

AudioManager,字如其意就是音效管理。在 Unity 中我们需要用到的音效 API 有,AudioClip 、AudioSource、AudioListener。相信大家对它们已经很熟悉了。

我们还是以实际的问题去出发去完成这个 AudioManager。既然是音效管理,那么它肯定要有音频播放的功能。

我们呢就先马上实现一个音频播放的逻辑,先准备一个音效,放在我们的 Resources 目录下,如下图所示。
# 84.AudioManager 音频播放功能

006tNc79gy1fzgf4x6dr8j306c01ya9y.jpg

然后直接实现我们的播放音频逻辑,代码如下:
QFramework/Example/13.AudioManager/AudioExample.cs

using UnityEngine;  namespace QFramework {     public class AudioExample : MonoBehaviour     {  #if UNITY_EDITOR         [UnityEditor.MenuItem("QFramework/Example/13.AudioManager", false, 13)]         private static void MenuClicked()         {             UnityEditor.EditorApplication.isPlaying = true;              new GameObject("AudioExample")                 .AddComponent<AudioExample>();         } #endif          private void Start()         {             gameObject.AddComponent<AudioListener>();              var audioSource = gameObject.AddComponent<AudioSource>();              var coinSound = Resources.Load<AudioClip>("coin");              audioSource.clip = coinSound;             audioSource.Play();         }     } }

执行之后,能听到我们的音频声音,并且在场景中创建了一些东西,如下图所示。
# 84.AudioManager 音频播放功能

006tNc79gy1fzgf503ayyj30kf0bpq4l.jpg

这样一个音频播放的功能就做完了。我们把以上的逻辑,整理成方法,放到我们的 AudioManager 脚本了。
代码如下所示:
Assets/QFramework/Framework/Manager/AudioManager.cs

using System.Collections; using System.Collections.Generic; using UnityEngine;  namespace QFramework {     public class AudioManager : MonoBehaviour     {         public void PlaySound(string soundName)         {             gameObject.AddComponent<AudioListener>();              var audioSource = gameObject.AddComponent<AudioSource>();              var coinSound = Resources.Load<AudioClip>("coin");              audioSource.clip = coinSound;             audioSource.Play();         }     } }

但是这样写了之后,我们的示例代码就没法访问 PlaySound 这个方法了。所以呢,要把 AudioManager 做成一个单例。
代码如下:
Assets/QFramework/Framework/Manager/AudioManager.cs
“`cs
using UnityEngine;

namespace QFramework
{
public class AudioManager : MonoBehaviour
{
private static AudioManager mInstance;

    public static AudioManager Instance     {         get         {             if (mInstance == null)             {                 mInstance = new GameObject("AudioManager").AddComponent<AudioManager>();                  DontDestroyOnLoad(mInstance);             }              return mInstance;         }     }      public void PlaySound(string soundName)     {         gameObject.AddComponent<AudioListener>();          var audioSource = gameObject.AddComponent<AudioSource>();          var coinSound = Resources.Load<AudioClip>("coin");          audioSource.clip = coinSound;         audioSource.Play();

在上一篇,我们完成了 GUIManager。
先列出 Manager Of Managers 如下:

  • (完成) MainManager: 作为入口管理器。
  • (已经有了) EventManager: 消息管理。
  • (完成) GUIManager: 图形视图管理。
  • AudioManager: 音效管理。
  • PoolManager: GameObject管理(减少动态开辟内存消耗,减少GC)。
  • LevelManager: 关卡管理。
  • GameManager: 游戏管理。
  • SaveManager: 配置&存储管理。
  • MenuManager 菜单管理。

下一个,我们要做的就是 AudioManager 了。

播放音频功能

AudioManager,字如其意就是音效管理。在 Unity 中我们需要用到的音效 API 有,AudioClip 、AudioSource、AudioListener。相信大家对它们已经很熟悉了。

我们还是以实际的问题去出发去完成这个 AudioManager。既然是音效管理,那么它肯定要有音频播放的功能。

我们呢就先马上实现一个音频播放的逻辑,先准备一个音效,放在我们的 Resources 目录下,如下图所示。
# 84.AudioManager 音频播放功能

006tNc79gy1fzgf4x6dr8j306c01ya9y.jpg

然后直接实现我们的播放音频逻辑,代码如下:
QFramework/Example/13.AudioManager/AudioExample.cs

using UnityEngine;  namespace QFramework {     public class AudioExample : MonoBehaviour     {  #if UNITY_EDITOR         [UnityEditor.MenuItem("QFramework/Example/13.AudioManager", false, 13)]         private static void MenuClicked()         {             UnityEditor.EditorApplication.isPlaying = true;              new GameObject("AudioExample")                 .AddComponent<AudioExample>();         } #endif          private void Start()         {             gameObject.AddComponent<AudioListener>();              var audioSource = gameObject.AddComponent<AudioSource>();              var coinSound = Resources.Load<AudioClip>("coin");              audioSource.clip = coinSound;             audioSource.Play();         }     } }

执行之后,能听到我们的音频声音,并且在场景中创建了一些东西,如下图所示。
# 84.AudioManager 音频播放功能

006tNc79gy1fzgf503ayyj30kf0bpq4l.jpg

这样一个音频播放的功能就做完了。我们把以上的逻辑,整理成方法,放到我们的 AudioManager 脚本了。
代码如下所示:
Assets/QFramework/Framework/Manager/AudioManager.cs

using System.Collections; using System.Collections.Generic; using UnityEngine;  namespace QFramework {     public class AudioManager : MonoBehaviour     {         public void PlaySound(string soundName)         {             gameObject.AddComponent<AudioListener>();              var audioSource = gameObject.AddComponent<AudioSource>();              var coinSound = Resources.Load<AudioClip>("coin");              audioSource.clip = coinSound;             audioSource.Play();         }     } }

但是这样写了之后,我们的示例代码就没法访问 PlaySound 这个方法了。所以呢,要把 AudioManager 做成一个单例。
代码如下:
Assets/QFramework/Framework/Manager/AudioManager.cs
“`cs
using UnityEngine;

namespace QFramework
{
public class AudioManager : MonoBehaviour
{
private static AudioManager mInstance;

    public static AudioManager Instance     {         get         {             if (mInstance == null)             {                 mInstance = new GameObject("AudioManager").AddComponent<AudioManager>();                  DontDestroyOnLoad(mInstance);             }              return mInstance;         }     }      public void PlaySound(string soundName)     {         gameObject.AddComponent<AudioListener>();          var audioSource = gameObject.AddComponent<AudioSource>();          var coinSound = Resources.Load<AudioClip>("coin");          audioSource.clip = coinSound;         audioSource.Play();

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » # 84.AudioManager 音频播放功能求职学习资料
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们