【发布时间】:2021-07-14 18:45:53
【问题描述】:
我刚刚在 Unity 中为我的 android 平台游戏添加了一个音频管理器,该管理器基于此 video tutorial from Brackeys,它按预期工作。我想请人帮助我了解如何实现音频淡入/淡出代码(我认为这将是一个协程)所以当游戏开始时所有声音都会淡入以及当我在按钮上调用函数时(退出游戏 UI 按钮已创建),然后所有声音都会淡出。
我试图从我以前的 UI 管理器脚本中实现一个协程,但不幸的是,我在理解这个问题时遇到了问题。游戏的所有其他功能都按我的意愿工作。
音乐类.cs
using UnityEngine.Audio;
using UnityEngine;
[System.Serializable]
public class Classmusic
{
public string name;
public AudioClip clip;
[Range(0f, 1f)]
public float volume;
[Range(0.1f, 3f)]
public float pitch;
public bool loop;
[HideInInspector]
public AudioSource source;
}
音乐播放器.cs
using System.Collections;
using UnityEngine;
using System;
using UnityEngine.Audio;
public class MPlayer : MonoBehaviour
{
public Classmusic[] music;
private void Awake()
{
foreach (Classmusic m in music)
{
m.source = gameObject.AddComponent<AudioSource>();
m.source.clip = m.clip;
m.source.volume = m.volume;
m.source.pitch = m.pitch;
m.source.loop = m.loop;
}
}
private void Start()
{
Play("MainMusic");
}
public void Play (string name)
{
Classmusic m = Array.Find(music, sound => sound.name == name);
if (m == null)
{
Debug.LogWarning("Music: " + name + " not found!");
return;
}
m.source.Play();
}
}
【问题讨论】: