unity控制音效的AudioClip方式

播放音效有很多方式

  1. 在脚本中得到AudioSource,然后在某个时间播放AudioSource.paly()即可,但是在种方法会依附于物体,物体destory了,不处理就会报错,不适合进行枪声这种物体很快就销毁的情况,如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TankMove : MonoBehaviour
{

	//两种声音
    public AudioClip moveAudioClip;
    public AudioClip stayAudioClip;
    //AudioSource组件
    private AudioSource _mAudioSource;
    // Start is called before the first frame update
    void Start()
    {
    	//获得AudioSource组件
        _mAudioSource = GetComponent<AudioSource>();
    }

    // Update is called once per frame
    void FixedUpdate()
    {
    	//如果tank正在移动
        if (Tank.isMoving())
        {
        	//设置移动声音
            _mAudioSource.clip = moveAudioClip;
            if(!_mAudioSource.isPlaying)
            	//播放,为了不重叠播放,要判断
                _mAudioSource.Play();
        }
        else
        {
            _mAudioSource.clip = stayAudioClip;
            if (!_mAudioSource.isPlaying)
                _mAudioSource.Play();
        }

    }
}

  1. AudioClip,在某个时刻,某个地点,播放一次即可,只需要声明AudioClip,在unity进行赋值,然后在某个时刻AudioSource.PlayClipAtPoint(AudioClip,transform.position);即可,不会依赖于物体是否存在
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class shell : MonoBehaviour
{

    public AudioClip shellExplosionAudioClip;

    void OnTriggerEnter(Collider other)
    {
		//在某个时刻进行播放        
        AudioSource.PlayClipAtPoint(shellExplosionAudioClip,transform.position);
        //销毁物体,不会报错
        Destroy(this.gameObject);
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值