【问题标题】:Toggle music in unity统一切换音乐
【发布时间】:2015-01-24 14:21:32
【问题描述】:

目前我切换到 On Value Change 使 AudioSource.enabled 关闭音乐。

但是,当我在游戏中死去时,关卡会重新加载,导致切换返回到其默认状态,然后我无法重新打开音乐。

那么制作音乐切换并在加载时记住切换状态的最佳方法是什么?

【问题讨论】:

    标签: c# user-interface unity3d toggle


    【解决方案1】:

    另一种解决方案是单例音乐管理器游戏对象,它只创建一次并在场景之间持久存在,这意味着当您重新加载场景或加载不同场景时它不会被销毁。

    您可以在此处阅读有关单例模式的更多信息:http://unitypatterns.com/singletons/

    【讨论】:

    • 我对设计模式还很陌生,这个解决方案感觉恰到好处。此外,为什么不:P?
    • 我的评论并非针对您的回答(如果我认为它错了,我通常会否决解释原因)。这只是个人的失望,因为听到太多关于使用单例的建议。单例通常是不好的,原因有很多,只是谷歌上有关该主题的一些考虑或从这里开始:stackoverflow.com/questions/137975/…。
    【解决方案2】:

    您可以使用PlayerPrefs 跨场景保存持久数据。只需将音频状态存储在那里,并确保在加载新场景时检查它是否已启用(例如,在同一 AudioSource 的 GameObject 上附加的 MonoBehaviour 的 Awake 方法内)。

    旁注

    根据具体情况,使用AudioListener.volume而不是修改所有AudioSources,全局关闭音量可能更容易。

    【讨论】:

    • 您能否告诉我如何实际存储音频状态以及如何在重新加载后让切换开关保持打开或关闭?
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多