Дублирующиеся значения в словаре при регистрации расстояний в Photon FusionC#

Место общения программистов C#
Anonymous
Дублирующиеся значения в словаре при регистрации расстояний в Photon Fusion

Сообщение Anonymous »

Я разрабатываю многопользовательскую игру в Unity с использованием Photon Fusion.
У меня есть словарь playerDistances:
[Networked]
[Capacity(4)] // Sets the fixed capacity of the collection
[UnitySerializeField] // Show this private property in the inspector.
private NetworkDictionary playerDistances => default;

где я записываю расстояние каждого игрока до финиша. Я обновляю эти расстояния в методе FixUpdateNetwork()
Dist=CalculateDistancePercentage();
If (playerDistances.ContainsKey(PlayerPrefs.GetString("PlayerName"))) {
// If the player is already in the dictionary, then we should update his distances instead of adding new key pairs
playerDistances.Set(PlayerPrefs.GetString("PlayerName"), Dist).
} else {
// If the player is not already in the dictionary, then we should add a new key-value pair
playerDistances.Add(PlayerPrefs.GetString("PlayerName"), Dist).
}

и распечатайте их при нажатии клавиши «U» в методе Update().
If (Input.GetKeyDown(KeyCode.U))
{
foreach(var kvp in playerDistances)
{
Debug.Log($"{playerDistances.Count}/{playerDistances.Capacity} Key:{kvp.Key} Value:{kvp.Value}").
}
}

это мой CalculateDistancePercentage:
private float CalculateDistancePercentage()
{
//Vector3 closestPointOnBounds = finishCollider.boun ds.ClosestPoint(transform.position).
float currentDistance = Vector3.Distance(transform.position,finishObject.transform.position).
//Debug.Log($"Absolute distance to the finish edge: {currentDistance}").
return currentDistance.
}

Однако, когда я нажимаю «U», он печатает повторяющиеся значения для разных клавиш
2/6 Key:AC Value:69.639
2/6 Key:BBB Value:69.639
2/6 Key:AC Value:22.622
2/6 Key:BBB Value:22.622

хотя каждый ключ (который представляет уникального игрока) должен иметь разное значение, например:
2/6 Key:AC Value:69.639
2/6 Key:BBB Value:22.622


Подробнее здесь: https://stackoverflow.com/questions/766 ... ton-fusion

Вернуться в «C#»