问题
如何对资产进行模糊查询和精确查询.
精确查询
%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!