當我的球對象擊中該腳本所附加的靜態對象時,我想隨機播放一定數量的聲音中的 1 個。一旦球擊中物體,物體就會被摧毀,從而切斷聲音,我不知道如何使用 Random.Range。我也不知道如何制作一個[序列化字段]來容納這些多種聲音。我不知道我會如何去做這件事,因為我是新手。public class ObjectDestroyer : MonoBehaviour{ [SerializeField] AudioClip[] breakColisionSounds; private void OnCollisionEnter2D(Collision2D collision) { AudioSource.PlayClipAtPoint(breakColisionSounds, Camera.main.transform.position); Destroy(gameObject, .03f); }}我希望球擊中這個物體,該物體在其序列化場內播放隨機聲音,同時它被摧毀。
1 回答

慕桂英546537
TA貢獻1848條經驗 獲得超10個贊
您必須在 Unity 編輯器中序列化您的AudioClips 和 the 。AudioSource
然后,您將從數組中隨機選擇一個剪輯,將其分配給音頻源并播放。
我還建議您將功能分解為更小的組件。
void OnCollisionEnter2D(Collision2D collision)
{
GetComponent<AudioCollection>().PlayRandom();
}
public class AudioCollection : MonoBehaviour
{
[SerializeField] AudioClip[] clips;
[SerializeField] AudioSource source;
void PlayRandom()
{
source.clip = clips[Random.Range(0, clips.Length)];
source.Play();
}
}
- 1 回答
- 0 關注
- 182 瀏覽
添加回答
舉報
0/150
提交
取消