public override void OnTriggerEvent(AITriggerEventType eventType, Collider other) { if (eventType == AITriggerEventType.Enter) { if (Utilities_AI.checkIfPlayer(other.gameObject)) { if (!lookAtPlayer) { stateMachine.LookAtThis = null; } else { stateMachine.LookAtThis = other.gameObject; } } } else if (eventType == AITriggerEventType.Exit) { if (Utilities_AI.checkIfPlayer(other.gameObject)) { stateMachine.LookAtThis = null; } } base.OnTriggerEvent(eventType, other); }
/// <summary> /// Check our surroundings to see if we /// are about to hit anything /// </summary> void CheckSurroundings() { if (rotation < 5.0f) { var checks = stateMachine.obstacleAwareness.AllHeightItems; bool left = false, front = false, right = false; foreach (var check in checks) { if (check.obstacles.left.collision) { left = true; } if (check.obstacles.right.collision) { right = true; } if (check.obstacles.front.collision) { front = true; } if (Utilities_AI.checkIfPlayer(check.obstacles.left.firstObjHit) || Utilities_AI.checkIfPlayer(check.obstacles.right.firstObjHit) || Utilities_AI.checkIfPlayer(check.obstacles.left.firstObjHit)) { playerBlocking = true; return; } else { playerBlocking = false; } } int dir = UnityEngine.Random.Range(-1, 2); if (!left && right) { rotation = UnityEngine.Random.Range(-rotationAdjust.x, -rotationAdjust.y); } else if (left && !right) { rotation = UnityEngine.Random.Range(rotationAdjust.x, rotationAdjust.y); } else if (left && right) { rotation = 180 * dir; } else if (front) { rotation = 180 * dir; } _lastRotate = Time.time; if (allowLogging && (rotation > 5.0f || rotation < -5.0f)) { Debug.Log($"The determined rotation was {rotation}"); } } }