クリックすると、ランタイム中に Unity3D の AudioSource を更新しています。
Cube ゲーム オブジェクトを作成しました。
立方体をクリックすると、AudioSource にプロパティが送信されます。
注:これは最終的に、パイプ区切りの wav ファイル (Assets Audio フォルダーに存在する) の文字列配列を介して渡される他の多くの wav ファイルを再生するためのものです。
したがって、各 CLICK EVENT で AudioSource を更新する必要があります。これにより、配列から選択された新しいファイルがロードされるたびに。
わかりました。Unity3D エディターは、スクリプトからパブリック変数を表示し、実行時に (キューブをクリックすると) それらを入力します。
私のパス変数は、Unity3D エディターに完全に表示されます。
しかし問題は、エディターのオーディオ クリップ プロパティに小さなオレンジ色のオーディオ ロゴが表示されている (何かがそこにある/ロードされているかのように) ことですが、Assets/Audio フォルダーから取得したファイルの名前は常に空です。
何も再生されませんが、エラーは発生しません!
プロパティplayOnAwake、volumeなど。_ すべてが、スクリプトを介して彼らに何をするように表現するかを正確に示しています。
注:最初のイメージでは、パス 変数は .wav ファイルを正しく指しています。
.wav が再生されないのはなぜですか?
オーディオ クリップのテキスト ボックス領域に .wav ファイル名が表示されないのはなぜですか?
public Color clickColor;
public Color releaseColor;
public int clickcount = 0;
public WWW www;
public AudioClip myAudioClip;
public string path;
void CubeClicked(GameObject tmpGameObject)
{
// CLICK COUNT
clickcount++;
// CLICK COLOR
tmpGameObject.GetComponent<Renderer>().materials[0].color = clickColor;
// IS TRIGGER
tmpGameObject.GetComponent<Collider>().isTrigger = true;
//AUDIO
path = "file://" + Application.dataPath.Substring(0, Application.dataPath.LastIndexOf("/")) + "/Assets/Audio/JetEngine.wav";
www = new WWW(path);
myAudioClip = www.audioClip;
tmpGameObject.GetComponent<AudioSource>().clip = myAudioClip;
tmpGameObject.GetComponent<AudioSource>().playOnAwake = false;
tmpGameObject.GetComponent<AudioSource>().volume = 0.999f;
tmpGameObject.GetComponent<AudioSource>().Play();
}