public override MeepleObjectSerializable GetSerializable() { cardData.Guid = GetInstanceID(); cardData.Name = name; cardData.Rotation = transform.rotation.eulerAngles; cardData.Size = transform.localScale; cardData.CurrentGridGuid = CurrentGrid.GetInstanceID(); cardData.CardImporterGuid = textureImporter.GetInstanceID(); return(cardData); }
private static bool CheckAffectedAsset(string affectedAsset, AssetRule assetRule, int selectedSelective) { SerializedObject assetImporterSO = null; SerializedObject ruleImporterSO = null; if (TypeFromAssetType(assetRule.assetType) == typeof(Texture)) { TextureImporter assetimporter = AssetImporter.GetAtPath(affectedAsset) as TextureImporter; // this may happen (e.g. render texture) if (assetimporter == null) { return(false); } TextureImporter ruleimporter = AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(assetRule.AssetGuid)) as TextureImporter; if (assetimporter.GetInstanceID() == ruleimporter.GetInstanceID()) { return(false); // this shouldnt happen but is a nice failsafe } assetImporterSO = new SerializedObject(assetimporter); ruleImporterSO = new SerializedObject(ruleimporter); } if (TypeFromAssetType(assetRule.assetType) == typeof(GameObject)) { ModelImporter assetimporter = AssetImporter.GetAtPath(affectedAsset) as ModelImporter; ModelImporter ruleimporter = AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(assetRule.AssetGuid)) as ModelImporter; if (assetimporter.GetInstanceID() == ruleimporter.GetInstanceID()) { return(false); // this shouldnt happen but is a nice failsafe } assetImporterSO = new SerializedObject(assetimporter); ruleImporterSO = new SerializedObject(ruleimporter); } if (TypeFromAssetType(assetRule.assetType) == typeof(AudioClip)) { AudioImporter assetimporter = AssetImporter.GetAtPath(affectedAsset) as AudioImporter; AudioImporter ruleimporter = AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(assetRule.AssetGuid)) as AudioImporter; if (assetimporter.GetInstanceID() == ruleimporter.GetInstanceID()) { return(false); // this shouldnt happen but is a nice failsafe } assetImporterSO = new SerializedObject(assetimporter); ruleImporterSO = new SerializedObject(ruleimporter); } if (assetImporterSO == null || ruleImporterSO == null) { return(false); // TODO log message here } if (!assetRule.SelectiveMode || assetRule.SelectiveProperties.Count <= 0) { return(CompareSerializedObject(assetImporterSO, ruleImporterSO)); } string property = assetRule.SelectiveProperties[selectedSelective]; string realname = GetPropertyNameFromDisplayName(assetImporterSO, property); SerializedProperty foundAssetSP = assetImporterSO.FindProperty(realname); SerializedProperty assetRuleSP = ruleImporterSO.FindProperty(realname); return(CompareSerializedProperty(foundAssetSP, assetRuleSP)); }