Unity:在世界空间中扩展GameObject

问题描述 投票:0回答:2

我想要实现这个目标:

enter image description here

这是一个非轴对齐的立方体,在Z轴(Y在Unity中)的混合器中的世界空间中缩放。我想在Unity中实现同样的目标。我试图为此找到公式,但没有运气,我知道我可以将我的对象父对象另一个GameObject并缩放父对象,但是一旦我取消原来的GameObject,比例就会重新缩小,我需要缩放原始的GameObject。任何建议将不胜感激。

unity3d matrix scale
2个回答
0
投票

您既可以取消它,也可以将其缩小然后重新显示,或者您可以创建将这两个对象分开保存的游戏对象,这样它们都有自己的比例。

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

0
投票

您可以使用此函数将比例(Vector3)从世界空间转换为本地空间:

transform.parent.InverseTransformVector(worldScale)

要在您的多维数据集中应用正确的比例,您可以执行以下操作:

cube.transform.localScale = cube.transform.parent.InverseTransformVector(worldScale);
© www.soinside.com 2019 - 2024. All rights reserved.