- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
143 lines
4.2 KiB
Plaintext
143 lines
4.2 KiB
Plaintext
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
public class EnviroAudioSource : MonoBehaviour {
|
|
|
|
public enum AudioSourceFunction
|
|
{
|
|
Weather1,
|
|
Weather2,
|
|
Ambient,
|
|
Ambient2,
|
|
Thunder,
|
|
ZoneAmbient
|
|
}
|
|
|
|
public AudioSourceFunction myFunction;
|
|
public AudioSource audiosrc;
|
|
public bool isFadingIn = false;
|
|
public bool isFadingOut = false;
|
|
|
|
float currentAmbientVolume;
|
|
float currentWeatherVolume;
|
|
float currentZoneVolume;
|
|
|
|
void Start ()
|
|
{
|
|
|
|
if (EnviroSkyMgr.instance == null)
|
|
{
|
|
Debug.Log("EnviroSky Manager not found. Deactivate enviro AudioSource");
|
|
this.enabled = false;
|
|
return;
|
|
}
|
|
|
|
if (audiosrc == null)
|
|
audiosrc = GetComponent<AudioSource> ();
|
|
|
|
if (myFunction == AudioSourceFunction.Weather1 || myFunction == AudioSourceFunction.Weather2)
|
|
{
|
|
audiosrc.loop = true;
|
|
audiosrc.volume = 0f;
|
|
}
|
|
|
|
currentAmbientVolume = EnviroSkyMgr.instance.ambientAudioVolume;
|
|
currentWeatherVolume = EnviroSkyMgr.instance.weatherAudioVolume;
|
|
}
|
|
|
|
public void FadeOut ()
|
|
{
|
|
isFadingOut = true;
|
|
isFadingIn = false;
|
|
}
|
|
|
|
public void FadeIn (AudioClip clip)
|
|
{
|
|
isFadingIn = true;
|
|
isFadingOut = false;
|
|
audiosrc.clip = clip;
|
|
audiosrc.Play ();
|
|
}
|
|
|
|
public void PlayOneShot(AudioClip clip)
|
|
{
|
|
audiosrc.loop = false;
|
|
audiosrc.clip = clip;
|
|
audiosrc.Play();
|
|
}
|
|
|
|
void Update ()
|
|
{
|
|
if (EnviroSkyMgr.instance == null && !EnviroSkyMgr.instance.IsStarted())
|
|
return;
|
|
|
|
currentAmbientVolume = Mathf.Lerp(currentAmbientVolume, EnviroSkyMgr.instance.ambientAudioVolume + EnviroSkyMgr.instance.ambientAudioVolumeModifier, 10f * Time.deltaTime);
|
|
currentWeatherVolume = Mathf.Lerp(currentWeatherVolume, EnviroSkyMgr.instance.weatherAudioVolume + EnviroSkyMgr.instance.weatherAudioVolumeModifier, 10 * Time.deltaTime);
|
|
|
|
if (myFunction == AudioSourceFunction.Weather1 || myFunction == AudioSourceFunction.Weather2 || myFunction == AudioSourceFunction.Thunder){
|
|
if (isFadingIn && audiosrc.volume < currentWeatherVolume) {
|
|
audiosrc.volume += EnviroSkyMgr.instance.audioTransitionSpeed * Time.deltaTime;
|
|
} else if (isFadingIn && audiosrc.volume >= currentWeatherVolume - 0.01f) {
|
|
isFadingIn = false;
|
|
}
|
|
|
|
if (isFadingOut && audiosrc.volume > 0f) {
|
|
audiosrc.volume -= EnviroSkyMgr.instance.audioTransitionSpeed * Time.deltaTime;
|
|
} else if (isFadingOut && audiosrc.volume == 0f) {
|
|
audiosrc.Stop ();
|
|
isFadingOut = false;
|
|
}
|
|
|
|
if (audiosrc.isPlaying && !isFadingOut && !isFadingIn) {
|
|
audiosrc.volume = currentWeatherVolume;
|
|
}
|
|
}
|
|
else if (myFunction == AudioSourceFunction.Ambient || myFunction == AudioSourceFunction.Ambient2)
|
|
{
|
|
if (isFadingIn && audiosrc.volume < currentAmbientVolume) {
|
|
audiosrc.volume += EnviroSkyMgr.instance.audioTransitionSpeed * Time.deltaTime;
|
|
} else if (isFadingIn && audiosrc.volume >= currentAmbientVolume - 0.01f) {
|
|
isFadingIn = false;
|
|
}
|
|
|
|
if (isFadingOut && audiosrc.volume > 0f) {
|
|
audiosrc.volume -= EnviroSkyMgr.instance.audioTransitionSpeed * Time.deltaTime;
|
|
} else if (isFadingOut && audiosrc.volume == 0f) {
|
|
audiosrc.Stop ();
|
|
isFadingOut = false;
|
|
}
|
|
|
|
if (audiosrc.isPlaying && !isFadingOut && !isFadingIn) {
|
|
audiosrc.volume = currentAmbientVolume;
|
|
}
|
|
}
|
|
|
|
else if (myFunction == AudioSourceFunction.ZoneAmbient)
|
|
{
|
|
if (isFadingIn && audiosrc.volume < EnviroSkyMgr.instance.interiorZoneAudioVolume)
|
|
{
|
|
audiosrc.volume += EnviroSkyMgr.instance.interiorZoneAudioFadingSpeed * Time.deltaTime;
|
|
}
|
|
else if (isFadingIn && audiosrc.volume >= EnviroSkyMgr.instance.interiorZoneAudioVolume - 0.01f)
|
|
{
|
|
isFadingIn = false;
|
|
}
|
|
|
|
if (isFadingOut && audiosrc.volume > 0f)
|
|
{
|
|
audiosrc.volume -= EnviroSkyMgr.instance.interiorZoneAudioFadingSpeed * Time.deltaTime;
|
|
}
|
|
else if (isFadingOut && audiosrc.volume == 0f)
|
|
{
|
|
audiosrc.Stop();
|
|
isFadingOut = false;
|
|
}
|
|
|
|
if (audiosrc.isPlaying && !isFadingOut && !isFadingIn)
|
|
{
|
|
audiosrc.volume = EnviroSkyMgr.instance.interiorZoneAudioVolume;
|
|
}
|
|
}
|
|
}
|
|
}
|