//UMA 2.8 FixDNAPrefabs: Swaps the legacy converter (DnaConverterBehaviour Prefab) for the new DNAConverterController /// <summary> /// Replaces a legacy DnaConverterBehaviour Prefab with a new DynamicDNAConverterController /// </summary> /// <returns>returns true if any converters were replaced.</returns> public bool UpgradeFromLegacy(DnaConverterBehaviour oldConverter, DynamicDNAConverterController newConverter) { if (_slotDNA.Value as Object == oldConverter) //Not sure why I am being told by visualStudio to cast the left side to Object here... { _slotDNA.Value = newConverter; return(true); } return(false); }
public void AddDNAUpdater(DnaConverterBehaviour dnaConverter) { if (dnaConverter == null) { return; } if (!umaDnaConverter.ContainsKey(dnaConverter.DNAType)) { umaDnaConverter.Add(dnaConverter.DNAType, dnaConverter.ApplyDnaAction); } }
//UMA 2.8 FixDNAPrefabs: Swaps the legacy converter (DnaConverterBehaviour Prefab) for the new DNAConverterController /// <summary> /// Replaces a legacy DnaConverterBehaviour Prefab with a new DynamicDNAConverterController /// </summary> /// <returns>returns true if any converters were replaced.</returns> public bool UpgradeFromLegacy(DnaConverterBehaviour oldConverter, DynamicDNAConverterController newConverter) { if (_dnaConverterList.Contains(oldConverter)) { if (_dnaConverterList.Replace(oldConverter, newConverter)) { return(true); } } return(false); }
public bool Contains(DnaConverterBehaviour converter) { if (converter == null) { return(false); } for (int i = 0; i < _converters.Count; i++) { if (_converters[i] is DnaConverterBehaviour && _converters[i] == converter) { return(true); } } return(false); }
//UMA 2.8 FixDNAPrefabs: Swaps the legacy converter (DnaConverterBehaviour Prefab) for the new DNAConverterController /// <summary> /// Replaces a legacy DnaConverterBehaviour Prefab with a new DynamicDNAConverterController /// </summary> /// <returns>returns true if any converters were replaced.</returns> public bool UpgradeFromLegacy(DnaConverterBehaviour oldConverter, DynamicDNAConverterController newConverter, bool saveChanges = false) { if (_dnaConverter.Value as Object == oldConverter) //Not sure why I am being told by visualStudio to cast the left side to Object here... { _dnaConverter.Value = newConverter; //we need to update means/spreads/deviations here too- keeping existing data if we can var matchingIndexes = GetMatchingIndexes(oldConverter, newConverter); var newMeans = new float[EntryCount]; var newDeviations = new float[EntryCount]; var newSpreads = new float[EntryCount]; for (int i = 0; i < EntryCount; i++) { if (matchingIndexes.ContainsKey(i)) { newMeans[i] = means[matchingIndexes[i]]; newDeviations[i] = deviations[matchingIndexes[i]]; newSpreads[i] = spreads[matchingIndexes[i]]; } else { newMeans[i] = 0.5f; newDeviations[i] = 0.16f; newSpreads[i] = 0.5f; } } means = newMeans; deviations = newDeviations; spreads = newSpreads; #if UNITY_EDITOR if (saveChanges) { UnityEditor.EditorUtility.SetDirty(this); UnityEditor.AssetDatabase.SaveAssets(); } #endif return(true); } return(false); }