[Unity][聲音][Animation]代碼控制3D實體播放動畫發出3D聲音

 

 

結合 Animation 和AudioSource組件,使得 3D的實體 播放動畫,並且 播放聲音。

 

當含有AudioSource組件的物體的AudioSource組件的Avtive爲false,則不播放。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CubeJump : MonoBehaviour {
    /// <summary>
    /// 播放聲音 的音效 的AudioSource組件
    /// </summary>
    [SerializeField]
    private AudioSource audioSource;
    // Use this for initialization
    void Start () {

        if (audioSource == null)
        {
            audioSource = this.GetComponent<AudioSource>();
        }//
    }
    /// <summary>
    /// 播放動畫並且播放聲音
    /// </summary>
    private void Play3DSound()//私有或者公有,都可以
    {

        if (audioSource != null)
        {
            audioSource.Play();
        }//
    }//
}

 

如果插上耳機,音頻文件是可以正常播放的,那麼 隨着 場景的 播放,當方塊開始向上跳動 的時候,就會 播放一次音頻。

注意:

1.CubeJump實體的AudioSource組件的Loop不勾選,則音頻播放一次,如果Loop勾選,則循環播放。

2.Play3DSound函數是CubeJump.cs文件的內容,而AnimationEvent選擇調用 Play3DSound函數,是因爲 CubeJump組件和Animator組件掛載在同一個 實體 上面,如果分別在不同的實體上,那麼AnimationEvent就無法選擇Play3DSound函數。

3.

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章