Files
BH3/Assets/Scripts/Assembly-CSharp/MoleMole/MonoLightRectProb.cs
2025-08-13 09:26:42 +08:00

37 lines
1.1 KiB
C#

using UnityEngine;
namespace MoleMole
{
public class MonoLightRectProb : MonoLightProb
{
public float xlen = 1f;
public float zlen = 1f;
public override bool Evaluate(Vector3 pos, LightProbProperties defaultProperties, ref LightProbProperties ret)
{
Vector3 vector = Matrix4x4.TRS(base.transform.position, base.transform.rotation, Vector3.one).inverse.MultiplyPoint3x4(pos);
float num = 0.5f * xlen;
float num2 = 0.5f * zlen;
if (vector.x > num || vector.x < 0f - num || vector.z > num2 || vector.z < 0f - num2)
{
return false;
}
float a = Mathf.Abs(vector.x) / num;
float b = Mathf.Abs(vector.z) / num2;
ret = LightProbProperties.Lerp(defaultProperties, properties, attenuateCurve.Evaluate(Mathf.Max(a, b)));
return true;
}
private void OnDrawGizmosSelected()
{
Color bodyColor = properties.bodyColor;
Matrix4x4 matrix = Matrix4x4.TRS(base.transform.position, base.transform.rotation, Vector3.one);
Gizmos.matrix = matrix;
bodyColor.a = 0.3f;
Gizmos.color = bodyColor;
Gizmos.DrawCube(new Vector3(0f, 0f, 0f), new Vector3(xlen, 0.1f, zlen));
}
}
}