unityzgy/.svn/pristine/c4/c4e8aa6ba92ac801ca9865de306c17f8f811b188.svn-base
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

112 lines
3.6 KiB
Plaintext

#if AQUAS_PRESENT
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[AddComponentMenu("Enviro/Integration/AQUAS Integration")]
public class EnviroAquasIntegration : MonoBehaviour {
[Header("AQUAS Water Plane")]
public GameObject waterObject;
[Header("Setup")]
public bool deactivateAquasReflectionProbe = true;
public bool deactivateEnviroFogUnderwater = true;
[Header("Settings")]
[Range(0f,1f)]
public float underwaterFogColorInfluence = 0.3f;
//
//private GameObject enviroWaterDepth;
private AQUAS_LensEffects aquasUnderWater;
private bool isUnderWater;
//
private bool defaultDistanceFog;
private bool defaultHeightFog;
void Start ()
{
if (EnviroSkyMgr.instance == null)
{
Debug.Log ("No EnviroSky Manager in scene! This component will be disabled!");
this.enabled = false;
return;
}
if(GameObject.Find ("UnderWaterCameraEffects") != null)
aquasUnderWater = GameObject.Find ("UnderWaterCameraEffects").GetComponent<AQUAS_LensEffects> ();
defaultDistanceFog = EnviroSkyMgr.instance.FogSettings.distanceFog;
defaultHeightFog = EnviroSkyMgr.instance.FogSettings.heightFog;
SetupEnviroWithAQUAS ();
}
void Update ()
{
if (EnviroSkyMgr.instance == null)
return;
//Check if we are underwater! Deactivate the workaround plane and enviro fog.
if (waterObject != null && aquasUnderWater != null) {
if (aquasUnderWater.underWater && !isUnderWater) {
if (deactivateEnviroFogUnderwater) {
EnviroSkyMgr.instance.FogSettings.distanceFog = false;
EnviroSkyMgr.instance.FogSettings.heightFog = false;
EnviroSkyMgr.instance.CustomFogIntensity = underwaterFogColorInfluence;
}
EnviroSkyMgr.instance.UpdateFogIntensity = false;
EnviroSkyMgr.instance.ambientAudioVolumeModifier = -1f;
EnviroSkyMgr.instance.weatherAudioVolumeModifier = -1f;
isUnderWater = true;
} else if (!aquasUnderWater.underWater && isUnderWater) {
if (deactivateEnviroFogUnderwater) {
EnviroSkyMgr.instance.UpdateFogIntensity = true;
EnviroSkyMgr.instance.FogSettings.distanceFog = defaultDistanceFog;
EnviroSkyMgr.instance.FogSettings.heightFog = defaultHeightFog;
RenderSettings.fogDensity = EnviroSkyMgr.instance.Weather.currentActiveWeatherPreset.fogDensity;
EnviroSkyMgr.instance.CustomFogColor = aquasUnderWater.underWaterParameters.fogColor;
EnviroSkyMgr.instance.CustomFogIntensity = 0f;
}
EnviroSkyMgr.instance.ambientAudioVolumeModifier = 0f;
EnviroSkyMgr.instance.weatherAudioVolumeModifier = 0f;
isUnderWater = false;
}
}
}
public void SetupEnviroWithAQUAS ()
{
if (waterObject != null) {
if (deactivateAquasReflectionProbe)
DeactivateReflectionProbe (waterObject);
if (EnviroSkyMgr.instance.FogSettings.distanceFog == false && EnviroSkyMgr.instance.FogSettings.heightFog == false)
deactivateEnviroFogUnderwater = false;
if (aquasUnderWater != null)
aquasUnderWater.setAfloatFog = false;
} else {
Debug.Log ("AQUAS Object not found! This component will be disabled!");
this.enabled = false;
return;
}
}
private void DeactivateReflectionProbe (GameObject aquas)
{
GameObject probe = GameObject.Find (aquas.name + "/Reflection Probe");
if (probe != null)
probe.GetComponent<ReflectionProbe> ().enabled = false;
else
Debug.Log ("Cannot find AQUAS Reflection Probe!");
}
}
#endif