public void RunFrom() { if (humanToRunFrom.IsDead()) { RemoveHumanThatRunAwayFrom(humanToRunFrom); return; } else if (humanPoisoner.IsPoisoned) { StopRunnigAway(); } runTo = Vector3.zero; offsetOnX = transform.position.x - humanToRunFrom.transform.position.x; offsetOnZ = transform.position.z - humanToRunFrom.transform.position.z; FindEscabeWay(); if (NavMesh.SamplePosition(runTo, out hit, navSampleDistance, 1 << NavMesh.GetAreaFromName("Walkable"))) { if (_activeBorder.ChechIfInsideBorder(runTo)) { agent.SetDestination(runTo); } else { if (isGoingUp) { goingUpProbability--; if (CheckIfOnTheNav(Vector3.left * navSampleDistance) && offsetOnX < zHDistance.x) { goingLeftProbability++; } if (CheckIfOnTheNav(Vector3.right * navSampleDistance) && offsetOnX > zHDistance.x) { goingRightProbability++; } if (CheckIfOnTheNav(Vector3.back * navSampleDistance) && offsetOnZ < zHDistance.z) { goingDownProbability++; } } else if (isGoingDown) { goingDownProbability--; if (CheckIfOnTheNav(Vector3.left * navSampleDistance) && offsetOnX < zHDistance.x) { goingLeftProbability++; } if (CheckIfOnTheNav(Vector3.right * navSampleDistance) && offsetOnX > zHDistance.x) { goingRightProbability++; } if (CheckIfOnTheNav(Vector3.forward * navSampleDistance) && offsetOnZ > zHDistance.z) { goingUpProbability++; } } else if (isGoingLeft) { goingLeftProbability--; if (CheckIfOnTheNav(Vector3.right * navSampleDistance) && offsetOnX > zHDistance.x) { goingRightProbability++; } if (CheckIfOnTheNav(Vector3.forward * navSampleDistance) && offsetOnZ > zHDistance.z) { goingUpProbability++; } if (CheckIfOnTheNav(Vector3.back * navSampleDistance) && offsetOnZ < zHDistance.z) { goingDownProbability++; } } else if (isGoingRight) { goingRightProbability--; if (CheckIfOnTheNav(Vector3.left * navSampleDistance) && offsetOnX < zHDistance.x) { goingLeftProbability++; } if (CheckIfOnTheNav(Vector3.forward * navSampleDistance) && offsetOnZ > zHDistance.z) { goingUpProbability++; } if (CheckIfOnTheNav(Vector3.back * navSampleDistance) && offsetOnZ < zHDistance.z) { goingDownProbability++; } } } } }