コード例 #1
0
 public void GetPath()
 {
     path     = pathFinder.GetPathFromSpawnToSeat();
     index    = 0;
     location = path[index];
     grid.Taketile(location);
 }
コード例 #2
0
    private void TraversePath()
    {
        //Stop patrons from standing inside each other
        if (grid.IsTileFree(path[pathIndex + 1]))
        {
            pathIndex++;
            if (pathIndex >= path.Length)
            {
                pathIndex = path.Length - 1;
            }
            if (pathIndex == path.Length - 1)
            {
                atTable = true;
            }
            grid.Taketile(path[pathIndex], path[pathIndex - 1]);

            transform.position = grid.GetWorldPositionOfGrid(path[pathIndex]);
        }
        else
        {
            waitingForSpace -= secondsPerMove;

            if (waitingForSpace < 0)
            {
                List <Vector2> newPath = pathFinder.GetPath(path[pathIndex], path[path.Length - 1]);
                if (newPath != null)
                {
                    NewPath(newPath);
                }

                waitingForSpace = Random.Range(1f, maxWaitTime);
            }
        }
    }