我制作了一個用于管理音頻檔案的腳本,因此可以同時播放多個檔案。
這是腳本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MultipleSoundManager : MonoBehaviour
{
#region AudioSource Variables
public AudioSource AS1;
public AudioSource AS2;
public AudioSource AS3;
public AudioSource AS4;
public AudioSource AS5;
#endregion
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void AudioSourceManager(AudioClip clippy)
{
for (int i = 1; i > 1; i )
{
AudioSource[] audioManagerArray = {AS1, AS2, AS3, AS4, AS5};
audioManagerArray[i].clip = clippy;
audioManagerArray[i].Play();
if(i == 5)
{
i = 1;
}
}
}
}
AudioSourceManager 函式是從其他腳本呼叫的,如下所示:
public MultipleSoundManager soundManagerScript;
soundManagerScript.AudioSourceManager(AKMShot);
當這個函式被呼叫時,什么都不會發生。我對 Unity 有點菜鳥,我真的不知道問題出在哪里。
uj5u.com熱心網友回復:
我認為你的問題是
for (int i = 1; i > 1; i )
你認為這個回圈會運行多少次?
uj5u.com熱心網友回復:
如果您提供更多資訊,它將有很大幫助。這里有一些建議: 1.嘗試找出[AKMShot]是否為空,可能是這個問題的原因。2.嘗試找出[AS1/2/3/4/5]是否為空,可能是這個問題的原因。2.你可以用“foreach”來代替你的[AudioSourceManager]中的“for”,試著google“C# foreach”學習一下,但它不能解決這個問題,它只能讓你的代碼看起來很漂亮。3.“啟動”和更新部分沒用。你可以洗掉它們。(也只是為了讓你的代碼漂亮)
uj5u.com熱心網友回復:
代碼永遠不會進入 for 回圈:
for (int i = 1; i > 1; i )
{
//...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/340630.html
下一篇:Unity2D-區域顏色反轉
