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

64 lines
1.9 KiB
C#

using System;
namespace UnityEngine.AzureSky
{
[ExecuteInEditMode]
[AddComponentMenu("Azure[Sky]/Azure Weather Zone")]
public sealed class AzureWeatherZone : MonoBehaviour
{
public float blendDistance;
public AzureWeatherProfile profile;
private Collider m_tempCollider;
private Color m_gizmosColor1 = new Color(0f, 1f, 0f, 0.25f);
private void OnEnable()
{
m_tempCollider = GetComponent<Collider>();
}
private void OnDrawGizmos()
{
m_tempCollider = GetComponent<Collider>();
if (m_tempCollider == null)
{
return;
}
if (m_tempCollider.enabled)
{
Vector3 lossyScale = base.transform.lossyScale;
Vector3 vector = new Vector3(1f / lossyScale.x, 1f / lossyScale.y, 1f / lossyScale.z);
Gizmos.matrix = Matrix4x4.TRS(base.transform.position, base.transform.rotation, lossyScale);
Type type = m_tempCollider.GetType();
if (type == typeof(BoxCollider))
{
BoxCollider boxCollider = (BoxCollider)m_tempCollider;
Gizmos.color = m_gizmosColor1;
Gizmos.DrawCube(boxCollider.center, boxCollider.size);
Gizmos.color = Color.green;
Gizmos.DrawWireCube(boxCollider.center, boxCollider.size + vector * blendDistance * 4f);
}
else if (type == typeof(SphereCollider))
{
SphereCollider sphereCollider = (SphereCollider)m_tempCollider;
Gizmos.DrawSphere(sphereCollider.center, sphereCollider.radius);
Gizmos.DrawWireSphere(sphereCollider.center, sphereCollider.radius + vector.x * blendDistance * 2f);
}
else if (type == typeof(MeshCollider))
{
MeshCollider meshCollider = (MeshCollider)m_tempCollider;
if (!meshCollider.convex)
{
meshCollider.convex = true;
}
Gizmos.DrawMesh(meshCollider.sharedMesh);
Gizmos.DrawWireMesh(meshCollider.sharedMesh, Vector3.zero, Quaternion.identity, Vector3.one + vector * blendDistance * 4f);
}
}
m_tempCollider = null;
}
}
}