// Update is called once per frame void Update() { distance = Vector3.Distance(troll.position, player.position); sliderT.position = troll.position; timer = Time.time - timerStart; if (isAggressive()) { if (distance > 30f) { // player too far away, idle idleTroll(); } else if (distance < 30f && distance > 3f) { // player out of range, move towards player moveTroll(); } else if (distance < 3f) { // player close, attack if (brain.shouldAttack()) { attack(); } else if ((timer > 10f) && (brain.inRange())) { attack(); } else { if (brain.shouldStepBack()) { stepBack(); } else { moveTroll(); } } } } else { moveTroll(); } }