检查并修复unity代码错误:public class MusicFade MonoBehaviour 挂载在audiosource类型的gameobj上使用时调用objnamefadeMusicvolumetime Start is called before the first frame update SerializeField private
public class MusicFade : MonoBehaviour
{
/*
* 挂载在audiosource类型的gameobj上,使用时调用objname.fadeMusic(volume,time)
*/
// Start is called before the first frame update
[SerializeField] private AudioSource Music;
[SerializeField] private float volumeDelta;
[SerializeField] private float targetvolume ;
[SerializeField] private bool isfading;
void Start()
{
Music = GetComponent
// Update is called once per frame
void Update()
{
if (!isfading) return;
if(Mathf.Abs(Music.volume - targetvolume) >= Mathf.Abs(volumeDelta)) //修正错误:Math.Abs改为Mathf.Abs
{
Music.volume += volumeDelta; //修正错误:float强制转换移除
Debug.Log("fading...");
}
else
{
Music.volume = targetvolume;
isfading = false;
}
}
public void FadeMusic(float targetVolume/*0-1*/, float durtime/*seconds*/)
{
Debug.Log("Music fade set target = " + targetVolume);
targetvolume = targetVolume;
if(Music == null) Music = GetComponent<AudioSource>();
float timedelta = durtime / Time.deltaTime;
if(timedelta > 0)
volumeDelta = (targetVolume - Music.volume) / timedelta;
else
{
volumeDelta = (targetVolume - Music.volume);
}
isfading = true;
}
public void FadeOut()
{
FadeMusic(0,1); //修正错误:fadeMusic改为FadeMusic
}
public void FadeIn()
{
FadeMusic(0.5f,1); //修正错误:fadeMusic改为FadeMusic
}
原文地址: https://www.cveoy.top/t/topic/fDFy 著作权归作者所有。请勿转载和采集!