我想要实现这个目标:
这是一个非轴对齐的立方体,在Z轴(Y在Unity中)的混合器中的世界空间中缩放。我想在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);