1

同じ型の変数を配列に格納し、それらの名前でアクセスする方法を探しています。PHP のように、次のようにします。

$array = array();
$array['first member']=$var1;
$array['another member']=$var2;
// so on

Unity3D の JavaScript で同様のことをしたいと考えています。現在、次のように使用されている AudioClip 変数があります。

#pragma strict

var Audio_Goal:AudioClip;
var Audio_Miss:AudioClip;
var Audio_Saved:AudioClip;


function PlaySound_Goal()
{   
    audio.PlayOneShot(Audio_Goal);  
}

function PlaySound_Miss()
{   
    audio.PlayOneShot(Audio_Miss);  
}

もちろん、これにはオーディオクリップごとに 1 つの関数が必要ですが、これは醜いことです。

私はこのようにしたい:

function PlayAudio(audioname:String)
{
    audio.PlayOneShot(AudioArray[audioname]);
}

これどうやってするの?

4

3 に答える 3

0

次のようなことができます:

var myAudioClips: AudioClip[];

function Start() {
    // Your stuff...
}

function PlayAudio(audioname:String)
{
    for (var myClip in myAudioClips) {
        if (audioname.Equals(myClip.name)) {
            audio.PlayOneShot(myClip);  
        }
    }

}

次に、エディターを使用してクリップをドラッグして、すべてのクリップを配列に追加します。

于 2013-08-02T17:46:46.620 に答える