zoukankan      html  css  js  c++  java
  • Unity3D音频播放器 动态装载组件

    大多数在线Unity有关如何只教程Unity在播放音乐。之后如何通过拖动它们无法继续添加音频文件
    但有时在游戏中的对象要玩几个声音。这时候我们就需要使用代码控制,拖动推教程AudioClip颂值的方法就显得不是那么有用了
    所以本篇将重点讲述怎样在Unity中创建一个最简化的音频播放器,并通过代码进行动态载入与播放

    ①创建一个Empty对象 点击菜单条[GameObject]–>Create Empty 命名为Audio

    ②选取这个空对象 点击菜单条[Component]–>Audio–>Audio Source 这样就在场景里创建了如图所看到的的一个喇叭

    ③创建资源目录命名为Resources,并把BeiTown.mp3文件拖入当中,注意一定要将资源目录名设为Resources,否则Resources.Load方法将无法找到资源文件

    ④创建脚本
    接下来開始创建脚本

    MusicPlayer.cs

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    using UnityEngine;
    using System.Collections;

    public class MusicPlayer : MonoBehaviour {

        public AudioSource Sound;

        public void Play(string str)
        {
            Sound.clip = (AudioClip)Resources.Load(str, typeof(AudioClip));//调用Resources方法载入AudioClip资源
            Sound.Play();
        }

    }

    MusicTest.cs

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    using UnityEngine;
    using System.Collections;

    public class MusicTest : MonoBehaviour {

        private MusicPlayer music;

        void Start () {
        
            music = (GetComponent("MusicPlayer") as MusicPlayer);//获取播放器对象

        }

        void OnGUI()
        {
            if(GUI.Button(new Rect(101010050)"PLAY")){

                music.Play("BeiTown");//调用播放器Play方法

            }

        }

    }

    ⑤将脚步绑定到AudioSource音源对象上。并将Audio对象赋给MusicPlayer脚本里的Sound对象,以便MusicPlayer对其进行操作

    ⑥点击播放button

    这个时候就能听到声音了,可是细心的朋友会发现左右耳朵的声音并非一样大的,这是由于我们的声音监听绑定在了主摄像机上。这就照成了声音可能是从一个方向传来的3D效果,假设不想要这个效果也好办
    选取Audio对象,点击菜单条[Commponent]–>Audio–>Audio Listener
    为Audio对象创建一个声音监听。并勾选它

    又一次点击播放button,这个时候发现依旧没有改变。控制台出现例如以下警告:There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.
    不要着急,Main Camera 主摄像机上的Audio Listen 取消勾选了么
    Unity默认一个scene里同一时候仅仅能有一个声音监听。事实上这也非常好理解,在自然情况下,人类也不可能做到两仅仅耳朵听取不同范围的声音(借助设备除外)
    将其它的Audio Listener取消后,仅仅保留Audio上的Audio Listener,点击Playbutton,一切正常!

    其它的暂停,停止,等等操作这里就不再加入了,感兴趣的朋友能够自己參考API进行操作,本文主要描写叙述怎样动态载入一首音乐。并将该类进行封装,同一时候最简化的代码也我们理解有利于手表。
    今天,就在这里。旨在分享。和共勉之王。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    alpha版本冲刺总结
    近两天项目冲刺
    关于微软必应词典客户端 的案例分析
    第三次作业——结队编程
    hdu 1002 A + B Problem II(大数)
    ZOJ 3805 Machine(二叉树,递归)
    hdu 4704 sum(费马小定理+快速幂)
    欧拉图
    hdu 1116 Play on Words(欧拉通路)
    前50个斐波那契数
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4644489.html
Copyright © 2011-2022 走看看