diff options
Diffstat (limited to 'GameCode/SuspendPlayerCollisionUntilNoOverlap.cs')
| -rw-r--r-- | GameCode/SuspendPlayerCollisionUntilNoOverlap.cs | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/GameCode/SuspendPlayerCollisionUntilNoOverlap.cs b/GameCode/SuspendPlayerCollisionUntilNoOverlap.cs deleted file mode 100644 index a822b9e..0000000 --- a/GameCode/SuspendPlayerCollisionUntilNoOverlap.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; - -public class SuspendPlayerCollisionUntilNoOverlap : MonoBehaviour -{ - public bool triggerOnEnable = true; - - public LayerMask scanLayer; - - private List<Collider> targetColliders = new List<Collider>(); - - private Collider[] overlaps; - - private bool suspended; - - private CharacterController trackedTarget; - - private void Awake() - { - targetColliders.AddRange(GetComponentsInChildren<Collider>()); - for (int num = targetColliders.Count - 1; num >= 0; num--) - { - if (targetColliders[num].isTrigger) - { - targetColliders.RemoveAt(num); - } - } - } - - private void OnEnable() - { - if (triggerOnEnable) - { - Trigger(); - } - } - - public void Trigger() - { - if (!PlayerManager.Instance) - { - return; - } - suspended = true; - PlayerMovement closestPlayer = PlayerManager.GetClosestPlayer(base.transform.position); - if ((bool)closestPlayer) - { - trackedTarget = closestPlayer.GetComponent<CharacterController>(); - } - foreach (Collider targetCollider in targetColliders) - { - targetCollider.isTrigger = true; - } - } - - private void SwitchBack() - { - suspended = false; - foreach (Collider targetCollider in targetColliders) - { - targetCollider.isTrigger = false; - } - } - - private void Update() - { - if (!suspended) - { - return; - } - if ((bool)trackedTarget) - { - float num = trackedTarget.height / 2f; - Vector3 point = trackedTarget.transform.position + Vector3.down * num; - Vector3 point2 = trackedTarget.transform.position + Vector3.up * num; - overlaps = Physics.OverlapCapsule(point, point2, trackedTarget.radius, scanLayer, QueryTriggerInteraction.Collide); - bool flag = true; - Collider[] array = overlaps; - foreach (Collider item in array) - { - if (targetColliders.Contains(item)) - { - flag = false; - } - } - if (flag) - { - SwitchBack(); - } - } - else - { - SwitchBack(); - } - } -} |
