Beispiel #1
0
 //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);
 }
Beispiel #2
0
 public void AddDNAUpdater(DnaConverterBehaviour dnaConverter)
 {
     if (dnaConverter == null)
     {
         return;
     }
     if (!umaDnaConverter.ContainsKey(dnaConverter.DNAType))
     {
         umaDnaConverter.Add(dnaConverter.DNAType, dnaConverter.ApplyDnaAction);
     }
 }
Beispiel #3
0
 //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);
 }
Beispiel #4
0
 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);
 }
Beispiel #5
0
        //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);
        }