Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/LinearFogController.cs
2026-03-04 10:03:45 +08:00

55 lines
1.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.AzureSky;
public class LinearFogController : MonoBehaviour
{
[Serializable]
public struct FogSetting
{
public int Hour;
public Color Color;
public float MinDistance;
public float MaxDistance;
}
[SerializeField]
private List<FogSetting> fogSettings;
private AzureTimeController azureTimeController;
public void SetFogSettings()
{
azureTimeController = ((azureTimeController == null) ? GetComponent<AzureTimeController>() : azureTimeController);
float x = azureTimeController.GetTimeOfDay().x;
OrderListByHour();
int index = 0;
for (int i = 0; i < fogSettings.Count; i++)
{
FogSetting fogSetting = fogSettings[i];
if (x >= (float)fogSetting.Hour)
{
index = i;
}
else if (x < (float)fogSetting.Hour)
{
break;
}
}
FogSetting fogSetting2 = fogSettings[index];
RenderSettings.fogColor = fogSetting2.Color;
RenderSettings.fogStartDistance = fogSetting2.MinDistance;
RenderSettings.fogEndDistance = fogSetting2.MaxDistance;
}
private void OrderListByHour()
{
fogSettings = fogSettings.OrderBy((FogSetting x) => x.Hour).ToList();
}
}