问题
如何对资产进行模糊查询和精确查询.
精确查询
%assetId = "ToyAssets:Crosshair2"; // Acquire the asset object itself. %asset = AssetDatabase.acquireAsset( %assetId ); // Do some work with it. echo( %asset.ImageFile ); // Release the asset. Must do this! AssetDatabase.releaseAsset( %assetId );
快速查询,这里的%asset可以进行ImageAsset的所有操作,也可以通过Field来遍历.
模糊查询
%query = new AssetQuery(); // Find a specific asset. AssetDatabase.findAssetName( %query, "Crosshair2" ); // Iterate the results. for( %index = 0; %index < %query.count; %index++ ) { // Fetch the asset Id. %assetId = getWord( %query, %inde ); // Acquire the asset object itself. %asset = AssetDatabase.acquireAsset( %assetId ); // Do some work with it. echo( %asset.ImageFile ); // Release the asset. Must do this! AssetDatabase.releaseAsset( %assetId ); } // Delete the query. %query.delete();
查询条件和范围可以随意修改,重要的是如何遍历和信息查询.
Field
AssetDatabase.findAssetType(%query, ImageAsset); echo("Found" SPC %query.count SPC "assets"); for(%i=0; %i < %query.count; %i++) { %MyassetID = %query.getAsset(%i); %MyImageAsset = AssetDatabase.acquireAsset(%MyassetID ); echo("Asset Name :" SPC %MyassetID); for(%z=0; %z< %MyImageAsset.getFieldCount(); %z++) { echo(%MyImageAsset.getField(%z)); echo(%MyImageAsset.getFieldValue(%MyImageAsset.getField(%z))); } }
对所有的ImageAsset进行遍历.
OVER!