[ユニティ5.5.1f1] [C#の]オーディオは、後でそれが
必要以上に遊んで私は同じようにすぐにリロードを開始するとサウンドを再生することになっているリロードスクリプトを作りました。 スクリプトは完璧に動作しますが、リロードが完了するとサウンドが正確に再生されます。 現在の行の外に行を移動すると、if (currentClip <= 0 || pressedR == true)
の下のtoも機能しません。 誰かが再読み込みが始まるとすぐにサウンドを再生する方法を知っていますか? (すべての予備弾薬も枯渇したとき、好ましくは、if (totalAmmo > 1)
の下で、それが再生されませんように)
// Update is called once per frame
void FixedUpdate()
{
if (Input.GetKey(KeyCode.Mouse0) && counter > DelayTime && reloading == false)
{
Instantiate(Bullet, transform.position, transform.rotation); //Spawning the bullet
currentClip += -1;
counter = 0;
}
if (Input.GetKey(KeyCode.R)) //This will allow the player to use "R" to reload.
{
pressedR = true;
}
//Start of reloading
if (currentClip <= 0 || pressedR == true)
{
reloading = true;
if (totalAmmo > 1)
{
GetComponent<AudioSource>().Play(); // <-- AUDIO AUDIO AUDIO
reloadCounter += Time.deltaTime;
if (reloadCounter > reloadTime)
{
missingAmmo = clipSize - currentClip;
if (totalAmmo >= missingAmmo)
{
totalAmmo += currentClip;
totalAmmo += -clipSize;
currentClip = clipSize;
}
else
{
currentClip += totalAmmo;
totalAmmo = 0;
}
reloading = false;
pressedR = false;
reloadCounter = 0;
//End of reloading
}
}
}
counter += Time.deltaTime;
}
しかし、これで問題になるのは、弾薬が残っていなくてもリロードサウンドが再生されるということです。 – RnRoger
技術的には正常に動作しましたが、他の 'GetComponent().Play()'を削除した場合のみ –
RnRoger
また、ガンが自動的にリロードされたときに音が鳴らないようになりました(if(currentClip <= 0) – RnRoger