0
Unityでプログラミングを始めたばかりですが、私がやりたいことは、ゲームを開始してから5秒後に再生するようにオーディオクリップを遅らせることです。Unityでオーディオクリップをどのように遅延させるのですか?
私はオンラインで検索してこのコードを見つけましたが、実行すると音がありません。
using UnityEngine;
using System.Collections;
public class WizardVoice : MonoBehaviour {
public AudioSource myAudio;
// Use this for initialization
void Start() {
StartCoroutine(PlaySoundAfterDelay(myAudio, 300.0f));
}
// Update is called once per frame
void Update() {
}
IEnumerator PlaySoundAfterDelay(AudioSource audioSource, float delay)
{
if (audioSource == null)
yield break;
yield return new WaitForSeconds(delay);
audioSource.Play();
}
}
私は私が間違っていた何かを見つけるしようとしているが、任意の運を持っていませんよ。どんな助けもありがとう!
ありがとうございました!
コードは正常です。 'if(audioSource == null)を置き換えます。 yield break; 新しいWaitForSeconds(遅延)を返します。 audioSource.Play(); 'if(audioSource == null){ Debug.Log(" Null "); yield break;} else { Debug.Log( "Not Null"); 新しいWaitForSeconds(遅延)を返します。 audioSource.Play();} 'コンソールのタブに何が表示されたかを教えてください。 – Programmer
返事をありがとう。それは言う:NOT NULL UnityEngine.Debug:ログ(オブジェクト) c__Iterator0:MoveNextメソッド()(資産/声/ WizardVoice.csで:20) UnityEngine.MonoBehaviour:StartCoroutine(IEnumeratorを) WizardVoice:スタート() (Assets/Voices/WizardVoice.cs:9) しかし、音声は再生されませんでした。 –
それは変です。どのような統一版?また、別のプログラムでオーディオを開いて再生するようにしてください。それは音楽か短い音効果ですか? – Programmer