[Unity] オーディオ ソース コンポーネント - コードを使用してサウンド効果の再生と一時停止を動的に制御します

1. コードコントロールの再生、一時停止、停止

Audio Source コンポーネントをゲーム オブジェクトに追加します。
Audio Source コンポーネントの AudioCilp にオーディオ ファイルをドラッグします
ここに画像の説明を挿入
。 スクリプトを作成してマウントします。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson20 : MonoBehaviour
{
    
    
    //声明一个AudioSource类型变量
    AudioSource audioSource;

    void Start()
    {
    
    
        //获取AudioSource组件
        audioSource = this.GetComponent<AudioSource>();
    }
    void Update()
    {
    
    
        //1.播放
        //  按下P键播放
        if (Input.GetKeyDown(KeyCode.P))
        {
    
    
            audioSource.Play();

            //补充:延迟播放(参数1 延迟几秒)
            //audioSource.PlayDelayed(3);
        }

        //2.暂停
        //  按下空格暂停播放
        if (Input.GetKeyDown(KeyCode.Space))
        {
    
    
            audioSource.Pause();

            //补充:停止暂停,和暂停后再Play效果一样
            //audioSource.UnPause();
        }

        //3.停止播放
        //  按S键停止播放
        if (Input.GetKeyDown(KeyCode.S))
        {
    
    
            audioSource.Stop();
        }
    }
}

2. 効果音の終了を検知する方法

音楽の再生後に何かをしたい場合は、
音楽が再生されたかどうかを検出する必要があります

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson20 : MonoBehaviour
{
    
    
    //声明一个AudioSource类型变量
    AudioSource audioSource;

    void Start()
    {
    
    
        //获取AudioSource组件
        audioSource = this.GetComponent<AudioSource>();
    }
    void Update()
    {
    
    
        //使用.isPlaying来检测(返回值是bool)
        if (audioSource.isPlaying)
        {
    
    
            print("播放中");
        }
        else
        {
    
    
            print("播放结束了");
        }
    }
}

3. サウンドの再生を動的に制御する方法

方法 1: 音楽を再生するオブジェクトにスクリプトを直接マウントして再生を制御する
1. オブジェクトのスクリプトで AudioSource 型の変数を宣言します。
2. .GetComponent を通じてマウントされた AudioSource 音源スクリプトを取得します
。 3. 効果音ソースを制御します。ダイナミックなコントロール再生を実現するスクリプト
上記の知識ポイント1は使用する方法です

方法 2: 効果音ソース スクリプトをマウントするオブジェクトをインスタンス化する
(効果音プレハブの破棄を管理する必要があるため、この方法はあまり使用されません)
1. 再生する効果音をプレハブに作成し、Play On にチェックを入れますAwake パラメータ
ここに画像の説明を挿入
2 。スクリプトをシーン内のオブジェクトにマウントします。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson20 : MonoBehaviour
{
    
    
    //外部拖入音效预制体
    public GameObject obj;

    void Start()
    {
    
    
        //实例化外部拖入的音效预制体
        GameObject.Instantiate(obj);
    }
}

4. プレハブがインスタンス化されている限り、プレハブ サウンド エフェクトはすぐに再生されます。
ここに画像の説明を挿入
方法 3: AudioSource を使用して、さまざまなサウンド エフェクトの再生を制御します。AudioSource
コンポーネントの AudioClip パラメータは、コード
ここに画像の説明を挿入
と AudioClipによって編集できます。 type はパネルから音源をドラッグするための変数として宣言することもできます:
ここに画像の説明を挿入
パネルドラッグイン:
ここに画像の説明を挿入

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson20 : MonoBehaviour
{
    
    
    //从外部面板拖入的音频
    public AudioClip clip;

    void Start()
    {
    
    
        //获取一个AudioSource组件
        //  获取了自己挂载的对象的AudioSource组件
        AudioSource audio = this.gameObject.GetComponent<AudioSource>();
        //让获取到的这个AudioSource组件的AudioClip参数 = 我从外部拖入的音频文件
        audio.clip = clip;
        //播放
        audio.Play();
    }
}

おすすめ

転載: blog.csdn.net/SEA_0825/article/details/127115125