【问题标题】:Unity music transfer between scenesUnity 场景间音乐传输
【发布时间】:2021-04-09 12:23:26
【问题描述】:

我正在创建的游戏是一个名为 Sunnyland 的 Brackeys 教程,为我自己带来了一些曲折和挑战。我面临的一个特殊问题是音乐功能。菜单有几个场景,每个都可以从主菜单进入,一个关卡场景和一个完成后的获胜场景。

我希望在菜单场景中播放一个音频文件,一个用于关卡,一个用于结尾。 到目前为止,我已经解决了在不停止音频的情况下切换场景的问题,但是每次我回到主菜单时,音频都会再次播放,而之前的记录并没有停止。然后,当我按下“开始”按钮播放关卡时,它会随着关卡配乐继续播放。当然,它会继续在获胜的场景中播放。

总结一下:我现在的问题是:

  1. 在菜单部分多次播放音频
  2. 菜单音频进入关卡和获胜场景(仅在激活多个记录时) 这是我用来通过菜单场景播放音频的代码:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.SceneManagement;
public class MusicControl : MonoBehaviour
{
    private AudioSource music;

    private void Awake()
    {
        DontDestroyOnLoad(transform.gameObject);
        music = GetComponent<AudioSource>();
    }

    public void PlayMusic()
    {
        if (music.isPlaying) return;
        {
            music.Play();
        }
    }

    public void StopMusic()
    {
        music.Stop();
    }
}

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    在音乐GameObject的Awake()函数中使用DontDestroyOnLoad(gameObject)。 DontDestroyOnLoad() 在场景之间保留对象并且不会破坏对象。 当您进入另一个场景时,只需停止菜单音频?

    【讨论】:

      猜你喜欢
      • 2018-12-06
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多