Algorithmus für Spawn Auswahl



  • Hey,

    ich zerbreche mir gerade den Kopf, wie ich es schaffe, dass ich Spieler möglichst vernünftig spawnen lasse.

    Konkret möchte ich, dass die Spieler nah beinander spawnen, aber nicht aufeinander.

    Es gibt also ein Array locations, dass die Spawn locations enthält und es gibt ein Array players, dass die Spieler enthält.

    Wie finde ich nun einen Spawn Point der zwar nah an einem oder den meisten Spielern ist ohne dabei direkt in einen anderen Spieler zu spawnen (der evtl. gerade selber erst gespawnt ist und direkt auf dem Spawn Point steht)?

    Irgendwie hab ich keinen vernünftigen Ansatz...



  • Hatte eine spontane Eingebung. Sieht ganz gut aus, was sagt ihr?

    SpawnLocation bestSpawn = locations[0];
    
    float nearPlayer = float.MaxValue;
    
    for (int i = 0; i < locations.Length; ++i)
    {
    	for (int j = 0; j < players.Length; ++j)
    	{
    		float dist = locations[i].Dist(players[j].transform.position);
    
    		if (dist < nearPlayer && dist > 25)
    		{
    			bestSpawn = locations[i];
    
    			nearPlayer = dist;
    		}
    	}
    }
    

Log in to reply