调用 List<> 的简便方法?
Handy way to call a List<>?
所以对于我正在制作的游戏,我需要使用很多不同的音效,为了能够在关闭游戏时关闭音效的所有实例,我需要将它们保存在一个列表中。问题是,当我将它们保存在一个有很多不同音效的列表中时,我必须查找哪个音效对应于列表中的哪个条目,例如 SoundEffect[0] 或 SoundEffect[48]。有没有一种方便的方法可以使用名称从列表中调用事物?例如 SoundEffect[Strike] 或 SoundEffect[Death] 之类的?
如果有人有办法让这个更容易使用,请告诉我!
不要使用 List
。使用 Dictionary
并将每个音效存储在唯一 ID 下。然后你可以通过它的 ID 引用每个声音,它会 return 在恒定的时间 - 不需要查找。
// 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
替换为您正在使用的任何 class。)
所以对于我正在制作的游戏,我需要使用很多不同的音效,为了能够在关闭游戏时关闭音效的所有实例,我需要将它们保存在一个列表中。问题是,当我将它们保存在一个有很多不同音效的列表中时,我必须查找哪个音效对应于列表中的哪个条目,例如 SoundEffect[0] 或 SoundEffect[48]。有没有一种方便的方法可以使用名称从列表中调用事物?例如 SoundEffect[Strike] 或 SoundEffect[Death] 之类的?
如果有人有办法让这个更容易使用,请告诉我!
不要使用 List
。使用 Dictionary
并将每个音效存储在唯一 ID 下。然后你可以通过它的 ID 引用每个声音,它会 return 在恒定的时间 - 不需要查找。
// 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
替换为您正在使用的任何 class。)