Example #1
0
    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;
    }
Example #2
0
 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)}");
 }