Torque2D MIT 学习笔记(17) 如何遍历与查询资源

问题

  如何对资产进行模糊查询和精确查询.

精确查询

    %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!

原文地址:https://www.cnblogs.com/KevinYuen/p/2960582.html