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);
    }
}
}


Unity中,为游戏添加吃金币音效是一种常见的增强用户体验的方法。当你设计一款游戏,当玩家角色(通常是游戏角色)成功收集到金币时,通常会播放一个特定的音效来表示这一事件的发生。以下是如何在Unity中添加和使用吃金币音效的基本步骤: 1. **导入音效文件**: - 首先,你需要准备一个金币吃掉的音频文件,通常选择适合游戏风格的金币掉落或收集的音效(例如金币碰撞、金币拾取的wav或mp3格式)。 - 在Unity的Assets目录下创建一个专门的Audio Assets文件夹,将音效文件导入并存储其中。 2. **创建播放器组件**: - 在Hierarchy面板中,右键点击空处,选择Create > Audio > Audio Source,为游戏对象创建一个音频播放器组件。 3. **关联音效**: - 在创建的Audio Source组件上,找到"Clip"属性,在Inspector窗口中设置为你要使用的金币音效。 4. **脚本控制**: - 如果你想在游戏中基于代码触发音效,可以编写一个C#脚本,比如当检测到角色与金币碰撞时调用AudioSource.Play()方法播放音效。 ```csharp void OnTriggerEnter(Collider other) { if (other.CompareTag("Coin")) { AudioSource.PlayClipAtPoint(coinSound, transform.position); } } ``` 5. **设置循环**: - 如果金币被吃掉后还想持续播放,你可以设置AudioSource.loop = true;。否则,用一次性的Play方法即可。 6. **优化性能**: - 为了减少内存消耗,考虑将音效设为一次性播放,或者使用Audio Clip实例池来复用同一音效对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值