示例#1
0
        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("");
        }
示例#2
0
        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);
        }
示例#3
0
 internal AssetPropertyKey(string name, AssetPropertyType propertyType)
 {
     PropertyType = propertyType;
     Name         = name;
 }
示例#4
0
 internal AssetProperty(string name, AssetPropertyType propertyType, object value)
 {
     Key   = new AssetPropertyKey(name, propertyType);
     Value = value;
 }