public T this[int index] { get { return(_sourceList[index] != null ? _sourceList[index] : AssetId.FromId <T>(_sourceIds[index])); } set { throw new NotSupportedException(); } }
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); }