Ich möchte Vorweg eine Aussage von einem Vorredner Ausbessern. Eigentlich sind List und Array genau das gleiche nur das ein Array eine vordefinierte Größe besitzen musst oder du erweiterst diese und speicherst den Inhalt des Alten Arrays unter und ersetzt ihn dann mit dem Neuen Array. Also ganz einfach was dir Hilft funktioniert so :
Code:
public class Player
{
public int Money;
public Vector3 Position;
public Socket Socket;
}
Wenn du jetzt sagst du hast in einem Match eine fixe Anzahl anspielern kannst du ein Array nutzen. Falls nicht würd es sich Empfehlen ne List zu nutzen. Vorteil: Ein Array ist durch ihre fixierte Größe beim Arbeiten immer weitaus schneller als eine List.
Eine List kannst du mit Capacity zB. begrenzen.
Also dann weiters:
Falls Array
Zugreifen tust du beim Array
Code:
public void Method()
{
Pl[0].Money = 500;
}
Neuen Spieler erstellen :
Code:
public void CreateNewPlayer()
{
Player p = new Player();
p.Money = 500;
p.Position = new Vector3(0,0,0);
//Hier solltest du dann Nachfragen wo der Nächst Freie Platz ist
Pl[index] = p; //index ist der Freie Platz
}
List Funktioniert genauso nur du brauchst dich nicht drumkümmern wo der freie Platz ist da es einfach am Ende hinzugefügt wird
Code:
public void CreateNewPlayer()
{
Player p = new Player();
p.Money = 500;
p.Position = new Vector3(0,0,0);
Pl.Add(p); //index ist der Freie Platz
}
Zum Ändern von Werten musst du jedoch eine List erst kurz zum Array umwandeln und dann überschreiben.
Ich hoffe ich konnte dir damit eine Aufschlussreiche Anwort bieten.
Grüße
0F00
Hinzufügen möchte ich noch Enums sind eigentlich Zustände wenn ich es jetzt so ausdrücken kann ohne Ärger zu bekommen.
Also du kannst damit Zustände speichern zB ob dieser NPC Freundlich, Passiv oder Aggresiv ist.
Es erleichtert bei solchen Sachen die handhabung um vieles Überhaupt wenn es um den Bereich Netzwerkübertragung geht.
Ein Int mit 1 Wert in Bit umgerechnet ist weitaus kleiner, als ein string mit "NPC_Friendy" in Bits.