【问题标题】:Toggle an audio object only exists on one scene but plays in all scenes On/Off from another scene切换音频对象仅存在于一个场景中,但在所有场景中播放 从另一个场景开/关
【发布时间】:2019-07-21 23:58:38
【问题描述】:

我的“菜单”场景中有一个带有音频源的对象,并且附加了一个脚本,以便在场景之间保持播放而无需重置。我想使用选项场景上的按钮将音频静音/取消静音,并在可能的情况下为每次启动应用程序保存此设置以用于后续步骤。

我通过在对象上附加脚本使音频继续播放。这是在场景中继续播放音乐的代码。

public class dontStopAudio : MonoBehaviour {

    void Awake()
    {
        GameObject[] objs = GameObject.FindGameObjectsWithTag("BGAudio");
        if (objs.Length > 1)
            Destroy(this.gameObject);

        DontDestroyOnLoad(this.gameObject);
    }

}

我尝试创建一个脚本来打开和关闭背景音乐并调用音乐游戏对象以获取静音组件并更改它的值,但似乎没有用。我还尝试使用 if 和 if else 创建一个控制函数来比较音频源组件的静音属性的值,但我无法以任何方式更改它。

这就是我尝试这样做的方式,但我确信它存在严重错误。只是不知道是什么,因为我是一个统一的初学者,只是想通过小项目扩展我的知识。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class toggleMusic : MonoBehaviour {

    public GameObject bgMusic;
    public AudioSource bgAudio;
    public GameObject toggleMusicButton;
    public Sprite soundON, soundOFF;


    public void bgMusicOnOff()
    {
        bgAudio = bgMusic.GetComponent<AudioSource>();
        if (bgAudio.mute = false) { 
            bgAudio.mute = true;
            toggleMusicButton.GetComponent<Image>().sprite = soundOFF;
        }
        else if (bgAudio.mute = true) { 
            bgAudio.mute = false;
            toggleMusicButton.GetComponent<Image>().sprite = soundOFF;
        }
    }
}

我也尝试在按钮的 OnClick() 面板上调用该方法,但似乎效果不佳。

我希望能够从“选项”场景中使用按钮,在我成功完成后,我可能会在每次用户启动应用程序时保存设置。

非常感谢您提前抽出时间,我知道有些事情我没有考虑,但由于我对 Unity 缺乏知识/经验,我看不到是什么

【问题讨论】:

    标签: unity3d audio background toggle


    【解决方案1】:

    您应该查找PlayerPrefs

    然后你可以使用类似的东西:

    PlayerPrefs.SetInt("SoundOn", 1);
    

    if(PlayerPrefs.GetInt("SoundOn"))
    {
    //turn sound on
    }
    else
    {
    //turn sound off
    }
    

    在启动时。

    希望这会有所帮助。

    【讨论】:

    • 这绝对是解决方案,以帮助可能有同样问题的其他人。特别是,如果选择是在另一个场景中做出的,为了让游戏记住玩家的选择,(例如;游戏在菜单场景中启动并且你从选项场景中将其静音)你只需将你的音乐对象变成一个预制件并加载它选项屏幕以及将选项屏幕上静音的脚本作为游戏对象移动到菜单屏幕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    相关资源
    最近更新 更多