游戏开始,音乐开始播放,但它太烦人,想要静音或只是让它更安静。就像游戏一样,有设置菜单,我认为在下一个场景中会很好,我想放置滑块。 但是我遇到了错误。
脚本:
using UnityEngine;
using System.Collections;
public class Music : MonoBehaviour
{
void Awake()
{
DontDestroyOnLoad(transform.gameObject);
}
public AudioClip[] soundtrack;
// Use this for initialization
void Start()
{
if (!GetComponent<AudioSource>().playOnAwake)
{
GetComponent<AudioSource>().clip = soundtrack[Random.Range(0, soundtrack.Length)];
GetComponent<AudioSource>().Play();
}
}
// Update is called once per frame
void Update()
{
if (!GetComponent<AudioSource>().isPlaying)
{
GetComponent<AudioSource>().clip = soundtrack[Random.Range(0, soundtrack.Length)];
GetComponent<AudioSource>().Play();
}
}
}
答案 0 :(得分:0)
您使用AudioSource.volume
更改音量。创建Slider
时,您可以使用value
获取滑块的Slider.value
。因此,请Slider.value
并将其分配给AudioSource.volume
。
要创建s Slider,请转到 GameObject - &gt; UI - &gt; 滑块。确保Min Value
0 且Max Value
1 。还要确保未选中Whole Numbers
复选框。从编辑器中将Slider
拖到此脚本中的卷Slider
插槽。
注意:
如果您要多次使用某个组件,请将其缓存到全局变量,而不是多次执行GetComponent<AudioSource>()
或在Update()
函数中使用它。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Music : MonoBehaviour
{
public AudioClip[] soundtrack;
public Slider volumeSlider;
AudioSource audioSource;
void Awake()
{
DontDestroyOnLoad(transform.gameObject);
}
// Use this for initialization
void Start()
{
audioSource = GetComponent<AudioSource>();
if (!audioSource.playOnAwake)
{
audioSource.clip = soundtrack[Random.Range(0, soundtrack.Length)];
audioSource.Play();
}
}
// Update is called once per frame
void Update()
{
if (!audioSource.isPlaying)
{
audioSource.clip = soundtrack[Random.Range(0, soundtrack.Length)];
audioSource.Play();
}
}
void OnEnable()
{
//Register Slider Events
volumeSlider.onValueChanged.AddListener(delegate { changeVolume(volumeSlider.value); });
}
//Called when Slider is moved
void changeVolume(float sliderValue)
{
audioSource.volume = sliderValue;
}
void OnDisable()
{
//Un-Register Slider Events
volumeSlider.onValueChanged.RemoveAllListeners();
}
}
您可以详细了解Unity的用户界面here。