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

58 lines
941 B
C#

using UnityEngine;
namespace MoleMole
{
public class MonoTriangleZone2D : MonoSubZone2D
{
public float zlen = 1f;
public float pXlen = 1f;
public float nXlen = 1f;
private void validateInput()
{
if (zlen < 0f)
{
zlen = 0f - zlen;
}
if (pXlen < 0f)
{
pXlen = 0f - pXlen;
}
if (nXlen < 0f)
{
nXlen = 0f - nXlen;
}
}
public override bool Contain(Vector3 pos)
{
Vector3 vector = Matrix4x4.TRS(base.transform.position, base.transform.rotation, Vector3.one).inverse.MultiplyPoint3x4(pos);
validateInput();
float num = 0f;
if (vector.z < 0f)
{
return false;
}
if (vector.x >= 0f)
{
num = (pXlen * vector.z + vector.x * zlen) / (pXlen * zlen);
if (num > 1f)
{
return false;
}
}
else
{
num = (nXlen * vector.z - vector.x * zlen) / (nXlen * zlen);
if (num > 1f)
{
return false;
}
}
return true;
}
}
}