221 lines
5.9 KiB
C#
221 lines
5.9 KiB
C#
using System;
|
|
|
|
namespace UnityEngine
|
|
{
|
|
// Token: 0x02000181 RID: 385
|
|
[Serializable]
|
|
public struct ContactFilter2D
|
|
{
|
|
// Token: 0x06001D23 RID: 7459 RVA: 0x000242C4 File Offset: 0x000224C4
|
|
public ContactFilter2D NoFilter()
|
|
{
|
|
this.useTriggers = true;
|
|
this.useLayerMask = false;
|
|
this.layerMask = -1;
|
|
this.useDepth = false;
|
|
this.useOutsideDepth = false;
|
|
this.minDepth = float.NegativeInfinity;
|
|
this.maxDepth = float.PositiveInfinity;
|
|
this.useNormalAngle = false;
|
|
this.useOutsideNormalAngle = false;
|
|
this.minNormalAngle = 0f;
|
|
this.maxNormalAngle = 359.9999f;
|
|
return this;
|
|
}
|
|
|
|
// Token: 0x06001D24 RID: 7460 RVA: 0x00024344 File Offset: 0x00022544
|
|
private void CheckConsistency()
|
|
{
|
|
this.minDepth = ((this.minDepth != float.NegativeInfinity && this.minDepth != float.PositiveInfinity && !float.IsNaN(this.minDepth)) ? this.minDepth : float.MinValue);
|
|
this.maxDepth = ((this.maxDepth != float.NegativeInfinity && this.maxDepth != float.PositiveInfinity && !float.IsNaN(this.maxDepth)) ? this.maxDepth : float.MaxValue);
|
|
if (this.minDepth > this.maxDepth)
|
|
{
|
|
float num = this.minDepth;
|
|
this.minDepth = this.maxDepth;
|
|
this.maxDepth = num;
|
|
}
|
|
this.minNormalAngle = ((!float.IsNaN(this.minNormalAngle)) ? Mathf.Clamp(this.minNormalAngle, 0f, 359.9999f) : 0f);
|
|
this.maxNormalAngle = ((!float.IsNaN(this.maxNormalAngle)) ? Mathf.Clamp(this.maxNormalAngle, 0f, 359.9999f) : 359.9999f);
|
|
if (this.minNormalAngle > this.maxNormalAngle)
|
|
{
|
|
float num2 = this.minNormalAngle;
|
|
this.minNormalAngle = this.maxNormalAngle;
|
|
this.maxNormalAngle = num2;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06001D25 RID: 7461 RVA: 0x000244A4 File Offset: 0x000226A4
|
|
public void ClearLayerMask()
|
|
{
|
|
this.useLayerMask = false;
|
|
}
|
|
|
|
// Token: 0x06001D26 RID: 7462 RVA: 0x000244B0 File Offset: 0x000226B0
|
|
public void SetLayerMask(LayerMask layerMask)
|
|
{
|
|
this.layerMask = layerMask;
|
|
this.useLayerMask = true;
|
|
}
|
|
|
|
// Token: 0x06001D27 RID: 7463 RVA: 0x000244C4 File Offset: 0x000226C4
|
|
public void ClearDepth()
|
|
{
|
|
this.useDepth = false;
|
|
}
|
|
|
|
// Token: 0x06001D28 RID: 7464 RVA: 0x000244D0 File Offset: 0x000226D0
|
|
public void SetDepth(float minDepth, float maxDepth)
|
|
{
|
|
this.minDepth = minDepth;
|
|
this.maxDepth = maxDepth;
|
|
this.useDepth = true;
|
|
this.CheckConsistency();
|
|
}
|
|
|
|
// Token: 0x06001D29 RID: 7465 RVA: 0x000244F0 File Offset: 0x000226F0
|
|
public void ClearNormalAngle()
|
|
{
|
|
this.useNormalAngle = false;
|
|
}
|
|
|
|
// Token: 0x06001D2A RID: 7466 RVA: 0x000244FC File Offset: 0x000226FC
|
|
public void SetNormalAngle(float minNormalAngle, float maxNormalAngle)
|
|
{
|
|
this.minNormalAngle = minNormalAngle;
|
|
this.maxNormalAngle = maxNormalAngle;
|
|
this.useNormalAngle = true;
|
|
this.CheckConsistency();
|
|
}
|
|
|
|
// Token: 0x17000651 RID: 1617
|
|
// (get) Token: 0x06001D2B RID: 7467 RVA: 0x0002451C File Offset: 0x0002271C
|
|
public bool isFiltering
|
|
{
|
|
get
|
|
{
|
|
return !this.useTriggers || this.useLayerMask || this.useDepth || this.useNormalAngle;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06001D2C RID: 7468 RVA: 0x0002455C File Offset: 0x0002275C
|
|
public bool IsFilteringTrigger(Collider2D collider)
|
|
{
|
|
return !this.useTriggers && collider.isTrigger;
|
|
}
|
|
|
|
// Token: 0x06001D2D RID: 7469 RVA: 0x00024588 File Offset: 0x00022788
|
|
public bool IsFilteringLayerMask(GameObject obj)
|
|
{
|
|
return this.useLayerMask && (this.layerMask & (1 << obj.layer)) == 0;
|
|
}
|
|
|
|
// Token: 0x06001D2E RID: 7470 RVA: 0x000245C8 File Offset: 0x000227C8
|
|
public bool IsFilteringDepth(GameObject obj)
|
|
{
|
|
bool flag;
|
|
if (!this.useDepth)
|
|
{
|
|
flag = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.minDepth > this.maxDepth)
|
|
{
|
|
float num = this.minDepth;
|
|
this.minDepth = this.maxDepth;
|
|
this.maxDepth = num;
|
|
}
|
|
float z = obj.transform.position.z;
|
|
bool flag2 = z < this.minDepth || z > this.maxDepth;
|
|
if (this.useOutsideDepth)
|
|
{
|
|
flag = !flag2;
|
|
}
|
|
else
|
|
{
|
|
flag = flag2;
|
|
}
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
// Token: 0x06001D2F RID: 7471 RVA: 0x00024664 File Offset: 0x00022864
|
|
public bool IsFilteringNormalAngle(Vector2 normal)
|
|
{
|
|
float num = Mathf.Atan2(normal.y, normal.x) * 57.29578f;
|
|
return this.IsFilteringNormalAngle(num);
|
|
}
|
|
|
|
// Token: 0x06001D30 RID: 7472 RVA: 0x0002469C File Offset: 0x0002289C
|
|
public bool IsFilteringNormalAngle(float angle)
|
|
{
|
|
angle -= Mathf.Floor(angle / 359.9999f) * 359.9999f;
|
|
float num = Mathf.Clamp(this.minNormalAngle, 0f, 359.9999f);
|
|
float num2 = Mathf.Clamp(this.maxNormalAngle, 0f, 359.9999f);
|
|
if (num > num2)
|
|
{
|
|
float num3 = num;
|
|
num = num2;
|
|
num2 = num3;
|
|
}
|
|
bool flag = angle < num || angle > num2;
|
|
bool flag2;
|
|
if (this.useOutsideNormalAngle)
|
|
{
|
|
flag2 = !flag;
|
|
}
|
|
else
|
|
{
|
|
flag2 = flag;
|
|
}
|
|
return flag2;
|
|
}
|
|
|
|
// Token: 0x06001D31 RID: 7473 RVA: 0x0002472C File Offset: 0x0002292C
|
|
internal static ContactFilter2D CreateLegacyFilter(int layerMask, float minDepth, float maxDepth)
|
|
{
|
|
ContactFilter2D contactFilter2D = default(ContactFilter2D);
|
|
contactFilter2D.useTriggers = Physics2D.queriesHitTriggers;
|
|
contactFilter2D.SetLayerMask(layerMask);
|
|
contactFilter2D.SetDepth(minDepth, maxDepth);
|
|
return contactFilter2D;
|
|
}
|
|
|
|
// Token: 0x04000439 RID: 1081
|
|
public bool useTriggers;
|
|
|
|
// Token: 0x0400043A RID: 1082
|
|
public bool useLayerMask;
|
|
|
|
// Token: 0x0400043B RID: 1083
|
|
public bool useDepth;
|
|
|
|
// Token: 0x0400043C RID: 1084
|
|
public bool useOutsideDepth;
|
|
|
|
// Token: 0x0400043D RID: 1085
|
|
public bool useNormalAngle;
|
|
|
|
// Token: 0x0400043E RID: 1086
|
|
public bool useOutsideNormalAngle;
|
|
|
|
// Token: 0x0400043F RID: 1087
|
|
public LayerMask layerMask;
|
|
|
|
// Token: 0x04000440 RID: 1088
|
|
public float minDepth;
|
|
|
|
// Token: 0x04000441 RID: 1089
|
|
public float maxDepth;
|
|
|
|
// Token: 0x04000442 RID: 1090
|
|
public float minNormalAngle;
|
|
|
|
// Token: 0x04000443 RID: 1091
|
|
public float maxNormalAngle;
|
|
|
|
// Token: 0x04000444 RID: 1092
|
|
public const float NormalAngleUpperLimit = 359.9999f;
|
|
}
|
|
}
|