簡體   English   中英

Unity:在世界空間中縮放GameObject

[英]Unity: Scale a GameObject in world space

我正在努力實現這一目標:

在此處輸入圖片說明

這是一個非軸對齊的多維數據集,它在攪拌器中的世界空間中與Z軸(Unity中的Y)一起縮放。 我想在Unity中實現相同的目標。 我試圖為此找到公式,但是沒有運氣,我知道我可以將我的對象作為另一個GameObject的父對象並縮放父對象,但是一旦我取消對原始GameObject的父視圖,縮放比例就會重置,並且我需要縮放原始GameObject。 任何建議將不勝感激。

您可以取消其父級,縮放它,然后再使其重新父級化,或者可以創建將兩個對象分開保存的游戲對象,以便它們都具有自己的縮放比例。

void Rescale(Transform obj, Vector3 newScale)
{
    if(obj.root != obj)
    {
        Transform parent = obj.parent;
        obj.SetParent(null);
        obj.localScale = newScale;
        obj.SetParent(parent, true);
    }
}

您可以使用以下功能將比例(Vector3)從世界空間轉換為局部空間:

transform.parent.InverseTransformVector(worldScale)

要將正確的比例應用於多維數據集,您可以執行以下操作:

cube.transform.localScale = cube.transform.parent.InverseTransformVector(worldScale);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM