所以对于我正在制作的游戏,我需要使用许多不同的声音效果,为了能够在关闭游戏时关闭所有声音效果的实例,我需要将它们保存在列表中。问题是,当我将它们保存在一个对它有很多不同影响的列表中时,我必须查找哪个soundeffect对应于列表中的哪个条目,例如SoundEffect [0]或SoundEffect [48]。有没有方便的方法使用他们的名字从列表中调用东西?例如SoundEffect [Strike]或SoundEffect [Death]等等?
如果有人有办法让这个更容易使用,请告诉我!
答案 0 :(得分:3)
不要使用List
。使用Dictionary
并将每个音效存储在唯一ID下。然后你可以通过它的ID引用每个声音,它将在恒定时间内返回 - 不需要查找。
// Declaration
Dictionary<string, SoundEffect> dict = new Dictionary<string, SoundEffect>();
// Adding a sound effect
dict.Add("punch_sound", punchSoundEffectObject);
// Getting a sound effect
var sfx = dict["punch_sound"];
(显然用你正在使用的任何类替换示例中的SoundEffect
。)