sippo0614
@sippo0614

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

シーンB→シーンCの時はBGM引継ぎ、シーンB→シーンAの時はBGM消す

シーンB→シーンCへ移動時にはシーンBで設定したBGMをそのまま引き継ぎ
シーンBのAudio Source(BGM)の以下のコードを付けてます。

使用コード1↓
using UnityEngine;
using System.Collections;

public class SESoundScript : MonoBehaviour
{
public bool DontDestroyEnabled = true;

// Use this for initialization
void Start()
{
    if (DontDestroyEnabled)
    {
        // Sceneを遷移してもオブジェクトが消えないようにする
        DontDestroyOnLoad(this);
    }
}

// Update is called once per frame
void Update()
{

}

}

シーンB→シーンAの時はシーンB上に配置した「戻る」ボタンでシーンAへ移動
その際にシーンBで使用しているAudio Source(BGM)を停止したい

Audio Source(BGM)に以下の使用コード2も付けてます↓

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // UI関連のクラスを使うために追加

public class PlaySoundOnClick : MonoBehaviour
{
public AudioSource audioSource; // オーディオソースをここに設定
public Button muteButton; // 音を消すためのボタン

private bool isButtonHovered = false; // ボタンにカーソルが乗っているかのフラグ

void Start()
{
    // ボタンのイベントリスナーを設定
    muteButton.onClick.AddListener(StopAudio);
}

void Update()
{
    // マウスの左ボタンが押された時
    if (Input.GetMouseButtonDown(0) && !isButtonHovered)
    {
        // 音が再生されていない場合に再生
        if (!audioSource.isPlaying)
        {
            audioSource.Play();
        }
    }
}

// ボタンにマウスが乗った時に呼ばれる
public void OnPointerEnter()
{
    isButtonHovered = true;
}

// ボタンからマウスが離れた時に呼ばれる
public void OnPointerExit()
{
    isButtonHovered = false;
}

// ボタンが押されたときに音を止める
void StopAudio()
{
    audioSource.Stop();
}

}

シーンBに配置された「戻る」ボタンには
・On ClickにシーンAに移動するコード
・Event TriggerにPointer DownにてSEを1度だけ鳴らす
・Event TriggerにPointer Exitniteにて使用コード2を付けてOnPointerExit

という構図にしています。
ですがシーンAに移動してもシーンBでのBGMが引き継がれてしまいます。
どのように対応したら良いでしょうか?

ご教授お願い致します。

0

1Answer

Your answer might help someone💌