private string FindTexturePathInAssetProperty(AssetProperty assetProperty) { AssetPropertyType type = assetProperty.Type; if (type != AssetPropertyType.String) //String = 11,非字符串类型,判定为Asset类型。 { if (type == AssetPropertyType.Asset) //Asset = 15 { string text = FindTexturePathInAsset(assetProperty as Asset); if (text.Length > 0) { return(text); } } } else if (assetProperty.Name == "unifiedbitmap_Bitmap") { return((assetProperty as AssetPropertyString).Value.ToString()); } for (int i = 0; i < assetProperty.NumberOfConnectedProperties; i++) { string text2 = FindTexturePathInAssetProperty(assetProperty.GetConnectedProperty(i)); if (text2.Length > 0) { return(text2); } } return(""); }
private Asset FindTextureAsset(AssetProperty assetProperty) { //查找纹理贴图资源 //获取资源属性的数据类型。 AssetPropertyType type = assetProperty.Type; if (type.Equals(AssetPropertyType.Asset)) { try { Asset asset = assetProperty as Asset; if (IsTextureAsset(asset)) { Asset result = asset; return(result); } for (int i = 0; i < asset.Size; i++) { Asset asset2 = FindTextureAsset(asset.Get(i)); if (asset2 != null) { Asset result = asset2; return(result); } } } catch (Exception) { } } if (assetProperty.Name.IndexOf("bump", StringComparison.OrdinalIgnoreCase) < 0 && assetProperty.Name.IndexOf("opacity", StringComparison.OrdinalIgnoreCase) < 0 && assetProperty.Name.IndexOf("shader", StringComparison.OrdinalIgnoreCase) < 0 && assetProperty.Name.IndexOf("pattern", StringComparison.OrdinalIgnoreCase) < 0 && assetProperty.Name.IndexOf("_map", StringComparison.OrdinalIgnoreCase) < 0 && assetProperty.Name.IndexOf("transparency", StringComparison.OrdinalIgnoreCase) < 0) { for (int j = 0; j < assetProperty.NumberOfConnectedProperties; j++) { Asset asset3 = FindTextureAsset(assetProperty.GetConnectedProperty(j)); if (asset3 != null) { return(asset3); } } } return(null); }
internal AssetPropertyKey(string name, AssetPropertyType propertyType) { PropertyType = propertyType; Name = name; }
internal AssetProperty(string name, AssetPropertyType propertyType, object value) { Key = new AssetPropertyKey(name, propertyType); Value = value; }