- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg) - LoginPanel: InputField placeholder本地化、字体颜色保持 - HistoryPanel: 用时数据本地化、placeholder本地化 - RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建) - AppraiseWindowBase: 评价等级本地化、操作消息重建 - EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized - StudentOperateRecorder: 新增InjectOperateMsgLocalized方法 - LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选 - 字体切换时保留颜色和verticalOverflow
242 lines
5.8 KiB
Plaintext
242 lines
5.8 KiB
Plaintext
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
////// EnviroRTP - Switches RTP Presets and grass color according current seasons //////
|
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
///
|
|
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
#if ENVIRO_RTP_SUPPORT
|
|
[AddComponentMenu("Enviro/Integration/RTP")]
|
|
#endif
|
|
public class EnviroRTPIntegration : MonoBehaviour {
|
|
#if ENVIRO_RTP_SUPPORT
|
|
public Terrain terrain;
|
|
public ReliefTerrain rtp;
|
|
|
|
public bool ChangeGrass = true;
|
|
public bool ChangeGrassDensity = true;
|
|
public bool ChangePresets = true;
|
|
public bool ChangePresetsComplete = true;
|
|
public bool UpdateWeatherOnTerrain = true;
|
|
|
|
public string RTPSpringPresetName;
|
|
public string RTPSummerPresetName;
|
|
public string RTPAutumnPresetName;
|
|
public string RTPWinterPresetName;
|
|
|
|
public Color SpringGrassColor;
|
|
public Color SummerGrassColor;
|
|
public Color AutumnGrassColor;
|
|
public Color WinterGrassColor;
|
|
|
|
public float SpringGrassDensity = 0.7f;
|
|
public float SummerGrassDensity = 1f;
|
|
public float AutumnGrassDensity = 1f;
|
|
public float WinterGrassDensity = 0f;
|
|
|
|
private ReliefTerrainPresetHolder currentPreset;
|
|
private ReliefTerrainPresetHolder springPreset;
|
|
private ReliefTerrainPresetHolder summerPreset;
|
|
private ReliefTerrainPresetHolder autumnPreset;
|
|
private ReliefTerrainPresetHolder winterPreset;
|
|
|
|
// Use this for initialization
|
|
void Start ()
|
|
{
|
|
if (terrain == null)
|
|
terrain = GetComponent<Terrain> ();
|
|
|
|
|
|
|
|
if (ChangePresets)
|
|
{
|
|
springPreset = rtp.GetPresetByName(RTPSpringPresetName);
|
|
summerPreset = rtp.GetPresetByName(RTPSummerPresetName);
|
|
autumnPreset = rtp.GetPresetByName(RTPAutumnPresetName);
|
|
winterPreset = rtp.GetPresetByName(RTPWinterPresetName);
|
|
|
|
switch (EnviroSkyMgr.instance.Seasons.currentSeasons)
|
|
{
|
|
case EnviroSeasons.Seasons.Spring:
|
|
currentPreset = rtp.GetPresetByName(RTPSpringPresetName);
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Summer:
|
|
currentPreset = rtp.GetPresetByName(RTPSpringPresetName);
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Autumn:
|
|
currentPreset = rtp.GetPresetByName(RTPSpringPresetName);
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Winter:
|
|
currentPreset = rtp.GetPresetByName(RTPSpringPresetName);
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
UpdateSeason ();
|
|
|
|
EnviroSkyMgr.instance.OnSeasonChanged += (EnviroSeasons.Seasons season) =>
|
|
{
|
|
UpdateSeason ();
|
|
};
|
|
|
|
}
|
|
|
|
|
|
// Check for correct Setup
|
|
void OnEnable ()
|
|
{
|
|
if (ChangePresets)
|
|
{
|
|
if(RTPSpringPresetName == null)
|
|
{
|
|
Debug.LogError("Please assign a spring preset in Inspector!");
|
|
this.enabled = false;
|
|
}
|
|
if(RTPSummerPresetName == null)
|
|
{
|
|
Debug.LogError("Please assign a summer preset in Inspector!");
|
|
this.enabled = false;
|
|
}
|
|
if(RTPAutumnPresetName == null)
|
|
{
|
|
Debug.LogError("Please assign a autumn preset in Inspector!");
|
|
this.enabled = false;
|
|
}
|
|
if(RTPWinterPresetName == null)
|
|
{
|
|
Debug.LogError("Please assign a winter preset in Inspector!");
|
|
this.enabled = false;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
void ChangeGrassColor (Color ChangeToColor)
|
|
{
|
|
terrain.terrainData.wavingGrassTint = ChangeToColor;
|
|
}
|
|
|
|
|
|
|
|
void UpdateSeason ()
|
|
{
|
|
switch (EnviroSkyMgr.instance.Seasons.currentSeasons)
|
|
{
|
|
case EnviroSeasons.Seasons.Spring:
|
|
|
|
if(ChangeGrass)
|
|
ChangeGrassColor(SpringGrassColor);
|
|
if(ChangeGrassDensity)
|
|
terrain.detailObjectDensity = SpringGrassDensity;
|
|
|
|
if(ChangePresetsComplete)
|
|
rtp.RestorePreset(springPreset);
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Summer:
|
|
|
|
if(ChangeGrass)
|
|
ChangeGrassColor(SummerGrassColor);
|
|
if(ChangeGrassDensity)
|
|
terrain.detailObjectDensity = SummerGrassDensity;
|
|
|
|
if(ChangePresetsComplete)
|
|
rtp.RestorePreset(summerPreset);
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Autumn:
|
|
|
|
if(ChangeGrass)
|
|
ChangeGrassColor(AutumnGrassColor);
|
|
if(ChangeGrassDensity)
|
|
terrain.detailObjectDensity = AutumnGrassDensity;
|
|
|
|
if(ChangePresetsComplete)
|
|
rtp.RestorePreset(autumnPreset);
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Winter:
|
|
|
|
if(ChangeGrass)
|
|
ChangeGrassColor(WinterGrassColor);
|
|
if(ChangeGrassDensity)
|
|
terrain.detailObjectDensity = WinterGrassDensity;
|
|
|
|
if(ChangePresetsComplete)
|
|
rtp.RestorePreset(winterPreset);
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
void UpdateWeather ()
|
|
{
|
|
rtp.globalSettingsHolder._snow_strength = EnviroSkyMgr.instance.Weather.curSnowStrength;
|
|
|
|
if(EnviroSkyMgr.instance.Weather.wetness > 0f)
|
|
{
|
|
rtp.globalSettingsHolder.TERRAIN_GlobalWetness = EnviroSkyMgr.instance.Weather.curWetness;
|
|
}
|
|
else
|
|
{
|
|
rtp.globalSettingsHolder.TERRAIN_GlobalWetness = 0f;
|
|
}
|
|
|
|
rtp.globalSettingsHolder.Refresh(terrain.materialTemplate, rtp);
|
|
}
|
|
|
|
void UpdateRTP ()
|
|
{
|
|
switch (EnviroSkyMgr.instance.Seasons.currentSeasons)
|
|
{
|
|
case EnviroSeasons.Seasons.Spring:
|
|
rtp.InterpolatePresets(currentPreset.PresetID, springPreset.PresetID, 0.1f);
|
|
currentPreset = springPreset;
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Summer:
|
|
rtp.InterpolatePresets(currentPreset.PresetID, summerPreset.PresetID, 0.1f);
|
|
currentPreset = summerPreset;
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Autumn:
|
|
rtp.InterpolatePresets(currentPreset.PresetID, autumnPreset.PresetID, 0.1f);
|
|
currentPreset = autumnPreset;
|
|
break;
|
|
|
|
case EnviroSeasons.Seasons.Winter:
|
|
rtp.InterpolatePresets(currentPreset.PresetID, winterPreset.PresetID, 0.1f);
|
|
currentPreset = winterPreset;
|
|
break;
|
|
}
|
|
rtp.globalSettingsHolder.Refresh();
|
|
}
|
|
|
|
IEnumerator ChangeCurrentPreset (ReliefTerrainPresetHolder me)
|
|
{
|
|
yield return new WaitForSeconds (1f);
|
|
currentPreset = me;
|
|
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update ()
|
|
{
|
|
|
|
if (EnviroSkyMgr.instance == null)
|
|
return;
|
|
|
|
if (ChangePresets)
|
|
UpdateRTP ();
|
|
if (UpdateWeatherOnTerrain)
|
|
UpdateWeather ();
|
|
}
|
|
#endif
|
|
}
|