一、发现问题
在使用单例模式创建了一个挂载着音效库脚本的组件(AudioManager)后,我们可以直接把其挂载在需要的组件上
但在生成后,我发现了一个问题,场景前组件声音还有效,但切换场景后,该场景挂载音效库的组件就会显示missing
二、分析问题
在网上查找了大量视频、博客后,我还是没找到解决方法。最后在同学的提示下,我发现了一个问题,虽然在编辑器中AudioManager与其他组件在一个场景,但因为使用了DontDestroyOnLoad()方法,生成后AudioManager与其他的组件其实并不在一个场景里
可能是由于生成顺序的问题,在第一个场景依旧能挂载,但进入到下一个场景后,因为不在同一个场景,其他组件都找不到AudioManager,所以会显示missing
三、解决问题
这个问题我们可以用脚本来解决,在单例脚本中,我们可以添加or修改以下代码
而在需要调用的场景中,我们可以添加以下方法来调用
这样子,问题就顺利解决了!