public void DuplicateTo(plyVariables vars) { if (Application.isPlaying) { Debug.LogError("plyVariables.DuplicateTo() should not be used at runtime"); } else if (vars != this) { plyVariables plyVariables = vars.Copy(); vars.Clear(); vars.lastVarIdent = this.lastVarIdent; vars.varDefs = new List <plyVar>(); for (int i = 0; i < this.varDefs.Count; i++) { plyVar plyVar = this.varDefs[i].Copy(); plyVar.ClearValue(); vars.varDefs.Add(plyVar); } if (plyVariables.varDefs.Count > 0) { for (int j = 0; j < vars.varDefs.Count; j++) { int num = 0; while (num < plyVariables.varDefs.Count) { if (!(plyVariables.varDefs[num].name == vars.varDefs[j].name)) { num++; continue; } if (plyVariables.varDefs[num].ValueHandler.GetType() == vars.varDefs[j].ValueHandler.GetType()) { vars.varDefs[j].SetValue(plyVariables.varDefs[num].GetValue()); } break; } } } vars._SetDirty(); } }