Example #1
0
 public T this[int index] {
     get {
         return(_sourceList[index] != null ? _sourceList[index] : AssetId.FromId <T>(_sourceIds[index]));
     }
     set {
         throw new NotSupportedException();
     }
 }
Example #2
0
    private bool RetargetLateAttributeField(object obj, FieldInfo field)
    {
        FieldInfo targetField;

        if (IsLateAttributeField(obj, field, out targetField, false))
        {
            if (ScanningUtils.IsSerializableArray(field.FieldType))
            {
                IList idsArray = (IList)targetField.GetValue(obj);

                UnityEngine.Object[] referencesArray = (UnityEngine.Object[])Activator.CreateInstance(field.FieldType, new object[] { idsArray.Count });
                for (int i = 0; i < idsArray.Count; i++)
                {
                    referencesArray[i] = AssetId.FromId((string)idsArray[i], ScanningUtils.GetSerializableArrayType(field.FieldType));
                }

                field.SetValue(obj, (object)referencesArray);

                                #if !DEBUG_KEEP_IDS
                targetField.SetValue(obj, null);
                                #endif
            }
            else
            {
#if !KEEP_BROKEN_LINKS
                string val = (string)targetField.GetValue(obj);
                field.SetValue(obj, (object)AssetId.FromId(val, field.FieldType));
#endif

                                #if !DEBUG_KEEP_IDS
                targetField.SetValue(obj, null);
                                #endif
            }

            return(true);
        }

        return(false);
    }