Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Making NavMeshAgents queue / wait in line

Discussion in 'Navigation' started by jankammerath, Dec 18, 2018.

  1. jankammerath


    Dec 17, 2018
    Hello everybody,

    I have a couple of NavMeshAgents approaching my desk towards a defined point. As all agents are moving towards the same destination point, but need to wait until the agent before them is finished, each of them needs to wait in line. Before I start writing a massive script in C# I wanted to ask whether there is any best practice for queueing NavMeshAgents?

    Many thanks in advance,


    Attached Files:

  2. Lurking-Ninja


    Jan 20, 2015
    This is a decision making problem, not really navigation. But I would go with something like this:

    - have a blackboard, where you can signal if the desk is occupied or not
    - as soon as an agent arrives to the service point, it flips the signal, when he leaves, it flips again
    - have a point where they will form a queue
    - when the agent goes to the desk, it periodically needs to check if it's occupied or not, when the agent is "close" (it needs tweaking) I would raycast it, so if someone is closer to the service point, the agent knows beforehand (so you can redirect him to the queue)
    - I would really build a FIFO queue, every agent attached to the end and detached from the front and every agent would monitor the one in the front of it. This allows you to develop more life-like behavior (like one agent is slow, one is quickly catch up with the queue or someone is checking their phone so he leaves a gap between him and in the front)
    - when the agent leaves the service area, the front from the queue would get a green light to navigate to the service point
    - for the agents, it's an FSM (simple really)
    dadude123 likes this.
  3. a598504775


    Oct 19, 2019
    I get the same question recently. I would like to know if the problem has been solved? Thank you.
  4. Yandalf


    Feb 11, 2014
    The answer is right above you.
    DwinTeimlon likes this.