Unity播放声音框架

每一款游戏都需要音效

那么今天我就来给大家分享一个Unity中播放音效的一个脚本,非常好用。

下面就是上代码的时间

声音播放框架

//声音物体 using UnityEngine; using System.Collections;

public class Sounds : MonoBehaviour { public AudioSource soundPlayer; // Use this for initialization void Awake() { soundPlayer = GetComponent<AudioSource>(); } void Start() { soundPlayer.Play(); if (!soundPlayer.loop) { Destroy(gameObject, soundPlayer.clip.length + 0.3f); }

}

// Update is called once per frame
void Update()
{

}
public void Play(string clipName,Vector3 postion , float volume = 1,float maxDistance = 100f, bool Is3D = true, bool IsLoop = false)
{
    soundPlayer.clip = Resources.Load<AudioClip>(clipName);//动态加载资源
    soundPlayer.volume = volume;
    soundPlayer.maxDistance = maxDistance;
    soundPlayer.spatialBlend = Is3D ? 1 : 0;
    soundPlayer.loop = IsLoop;
    transform.position = postion;
}
}

//声音处理 创建声音组件 声音控制器 using UnityEngine; using System.Collections;

public class SoundMystical : MonoBehaviour//单例 {

public static SoundMystical instence;
public GameObject soungPre;
// Use this for initialization
void Awake()
{
    if (instence == null)
    {
        instence = this;
    }
}
public void Play(string clipName, Vector3 postion, float volume = 1, float maxDistance = 100f, bool Is3D = true, bool IsLoop = false)
{
    GameObject sondObj = Instantiate(soungPre, postion, Quaternion.identity) as GameObject;
    sondObj.GetComponent<Sounds>().Play(clipName, postion, volume, maxDistance, Is3D, IsLoop);
}
} //玩家组件,,读取声音文件 using UnityEngine; using System.Collections;

public class Playeraa : MonoBehaviour {

// Use this for initialization
void Start()
{

}

// Update is called once per frame
void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        SoundMystical.instence.Play("青蛙", transform.position);
    }
    if (Input.GetMouseButtonDown(1))
    {
        SoundMystical.instence.Play("东京不太热", transform.position, 0.5f, 233, false);
    }
}
}


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值