/************************************************************ * Helper Methods ************************************************************/ private void UpdateUserModelProperty(Guid uid, UserModelField userModelField, System.Object obj = null) { // Loop through every model looking for the correct Guid for (int i = 0; i < _userModels.Count; i++) { // When Guid found, modify the corresponding field in the model if (_userModels[i].Uid == uid) { switch (userModelField) { case UserModelField.Ping: _userModels[i].Ping = (int)obj; break; case UserModelField.Weapon: _userModels[i].Weapon = (int)obj; UserModelWeaponChangeListener(i, uid); break; case UserModelField.Kills: _userModels[i].Kills = (int)obj; break; case UserModelField.KillsIncrement: _userModels[i].Kills++; break; case UserModelField.Deaths: _userModels[i].Deaths = (int)obj; break; case UserModelField.DeathsIncrement: _userModels[i].Deaths++; break; case UserModelField.Dead: _userModels[i].Dead = (bool)obj; break; case UserModelField.Money: _userModels[i].Money = (int)obj; break; case UserModelField.MoneyIncrement: _userModels[i].Money += (int)obj; break; case UserModelField.Points: _userModels[i].Points = (int)obj; break; case UserModelField.PointsIncrement: _userModels[i].Points += (int)obj; break; case UserModelField.ColorIndex: _userModels[i].ColorIndex = (int)obj; break; case UserModelField.NextTeam: _userModels[i].NextTeam = (int)obj; UserModelTeamChangeListener(i); break; case UserModelField.CurrentTeam: _userModels[i].CurrentTeam = (int)obj; break; case UserModelField.Username: _userModels[i].UserName = (string)obj; break; case UserModelField.Uid: _userModels[i].Uid = new Guid((string)obj); break; case UserModelField.NetworkIdHash: _userModels[i].NetworkIdHash = (int)obj; break; } break; } } }
public void UpdateUserModelForAll(Guid uid, UserModelField field, System.Object obj = null) { var fieldParam = (int)field; string serialization = ""; if (obj != null) { var memoryStream = new MemoryStream(); new BinaryFormatter().Serialize(memoryStream, obj); serialization = Convert.ToBase64String(memoryStream.GetBuffer()); } UpdateUserModelProperty(uid, field, obj); networkView.RPC("UpdateUserModelRpc", RPCMode.Others, new object[] { uid.ToString(), fieldParam, serialization }); }