c# - 歌曲选择系统

标签 c# android audio unity3d

我正在尝试在我的项目中选择歌曲。每当您在游戏中单击一个按钮时,它都会将int发送到此函数。有没有更好的方法来构造此代码,因此我不必为每首歌曲都编写IF语句?

public void SongPick(int song)
{
    if (song == 0)
    {
        audioSource.clip = musicArray[0];    
    }
    if (song == 1)
    {
        audioSource.clip = musicArray[1];
    }
    if (song == 2)
    {
        audioSource.clip = musicArray[2];
    }

    audioSource.Play();
    string currentMusic = musicArray[song].name;
    songName.text = "PLAYING: " + currentMusic;
}

最佳答案

假设song始终在musicArray中引用正确的索引,则您绝对不需要不断增长的if语句。

public void SongPick(int song) {
    if (song < musicArray.length) {
        audioSource.clip = musicArray[song];    
    }    
    audioSource.Play();
    string currentMusic = musicArray[song].name;
    songName.text = "PLAYING: " + currentMusic;
}

关于c# - 歌曲选择系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39544828/

相关文章:

c# - 继承的奇怪扩展方法问题

android - 收到通知时出现异常

java - Android - 禁用启动屏幕上的声音

java - app:transformDexArchiveWithExternalLibsDexMergerForDebug

android - 如何将 Android 文本框设置为仅占 XML 总宽度的 60%?

android - 如何在另一个 Activity 中点击 ImageButton 时播放声音?

java - 如何使用 javax.sound.sampled 包同时播放一组频率(和弦)

c# - 为什么代码块是分层的?额外积分 : Beautiful way to write my code block

c# - 你如何在工厂中实现构造函数注入(inject)?

c# - 在 C# Unity3D 项目中添加延迟