private void SceneManager_activeSceneChanged(Scene arg0, Scene arg1) { //Get Rpcs and SyncVars GetRpcs(); GetSyncVars(); //SyncVarQueue List <SyncVarQueue> svQueuelocal = SVQueue; for (int i = 0; i < SVQueue.Count; i++) { SyncVars sv = svlist.Find(x => x.name == SVQueue[i].name); if (sv != null) { sv.classInstance.GetType().GetField(SVQueue[i].name).SetValue(sv.classInstance, SVQueue[i].value); svQueuelocal.RemoveAt(i); } } SVQueue = svQueuelocal; }
public void SyncVarrible(string varname, string changeto) { if (svlist.Count > 0) { SyncVars sv = svlist.Find(x => x.name == varname); if (sv != null) { sv.classInstance.GetType().GetField(varname).SetValue(sv.classInstance, changeto); } else { SVQueue.Add(new SyncVarQueue { name = varname, value = changeto }); } } else { SVQueue.Add(new SyncVarQueue { name = varname, value = changeto }); } //print($"VAR: {varname}, CHANGETO: {changeto}, NORMAL: {PlayersCount}, CHECK: {sv.classInstance.GetType().GetField(varname).GetValue(sv.classInstance)}"); }