Example #1
0
 // Update is called once per frame
 void Update()
 {
     timeUntilMove      -= Time.deltaTime;
     timeUntilNotMoving -= Time.deltaTime;
     if (CanMove())
     {
         ArtObject target = FindNextTarget();
         if (target != null)
         {
             int[] freeTile = FindFreeAdjacentTile(target.GetComponent <OnGrid> ());
             if (freeTile != null)
             {
                 //Debug.Log("Moving to " + freeTile[0] + " / " + freeTile[1] + " = " + GetComponent<OnGrid>().V3Position(gridTargetX, gridTargetY));
                 gridTargetX = freeTile [0];
                 gridTargetY = freeTile [1];
                 observing   = target;
                 if (!visited.Contains(target))
                 {
                     visited.Add(target);
                 }
                 iTween.MoveTo(this.gameObject, GetComponent <OnGrid> ().V3Position(gridTargetX, gridTargetY), moveTime);
                 timeUntilNotMoving = moveTime;
                 WaitUntilMove(moveTime + Random.Range(minObserveTime, maxObserveTime));
             }
         }
     }
 }