对于2个不同的主题(“声音管理”和“多语言支持”),我创建了2个不同的模块。
由于有2个非常不同的主题,并且在其他项目中可能只需要一个或另一个模块,我希望它们“自己运行”。这样它们也可以彼此独立运行。
但是现在我遇到的情况是,SoundManager必须根据语言加载声音A或声音B。因此功能上的重叠很小。
这是程序逻辑的简化表示:
public class i18n {
public static AudioClip LoadAudioClip(string localizationID) {
return Resources.Load<AudioClip>(LoadString(localizationID));
}
}
// And in another .cs file
public class SoundManager {
PreparePlay(int catNr, int clipNr) {
audioSource.clip = audioCategorie[catNr].clipList[clipNr].audioClip;
if(audioSource.clip == null) {
#if (How can I test here if the other class exists?) !!!!!!!!!!!
audioSource.clip = i18n.LoadAudioClip(audioCategorie[catNr].clipList[clipNr].clipID);
#endif
}
}
}