繁体   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