共用方式為


物件界限

物件界限代表實體及其子系佔用的磁碟區。 在 Azure 遠端轉譯 中,物件界限一律會指定為座標軸對齊周框方塊 (AABB)。 物件界限可以位於本機空間或世界空間。 無論哪種方式,它們一律會對齊軸,這表示區域和世界空間表示法之間的範圍和音量可能會有所不同。

查詢物件界限

網格的局部軸對齊周框方塊可以直接從網格資源查詢。 這些界限可以使用實體的轉換,轉換成實體的本機空間或世界空間。 如需詳細資訊,請參閱 網格

可以透過這種方式計算整個物件階層的界限。 這種方法需要周遊階層、查詢每個網格的界限,以及手動結合它們。 這項作業既乏味又沒有效率。

更好的方式是在實體上呼叫 QueryLocalBoundsAsyncQueryWorldBoundsAsync 。 此方法會將計算卸除至伺服器,並以最少的延遲傳回。

public async void GetBounds(Entity entity)
{
    try
    {
        Task<Bounds> boundsQuery = entity.QueryWorldBoundsAsync();
        Bounds result = await boundsQuery;
    
        Double3 aabbMin = result.Min;
        Double3 aabbMax = result.Max;
        // ...
    }
    catch (RRException ex)
    {
    }
}
void GetBounds(ApiHandle<Entity> entity)
{
    entity->QueryWorldBoundsAsync(
        // completion callback:
        [](Status status, Bounds bounds)
        {
           if (status == Status::OK)
            {
                Double3 aabbMin = bounds.Min;
                Double3 aabbMax = bounds.Max;
                // ...
            }
        }
    );
}

API 文件

下一步