Пример #1
0
 // 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();
     }
 }