如何将游戏对象设置为统一的精确长度

Chr*_*and 7 c# unity-game-engine

在Unity中,我有一个代表距离的浮动

float distance = Vector3.Distance(start.position,end.position);
Run Code Online (Sandbox Code Playgroud)

我想使用该浮动来改变对象沿Z轴的大小.我试过了:

gameobject.transform.localScale.z = distance;
Run Code Online (Sandbox Code Playgroud)

但是,这只是改变了比例,我需要将游戏对象更改为精确的长度.有没有直接的方法来实现这一目标?

Chr*_*and 9

我创建了一个解决方法函数,将特定长度转换为比例(对于将来可能会发现此问题的任何人).游戏对象只能通过缩放更改其大小,但可以通过渲染器找到它们的确切大小.使用一点插值,您可以将其转换为新的比例,以将对象的大小调整为精确的大小.

public void newScale(GameObject theGameObject, float newSize) {

    float size = theGameObject.GetComponent<Renderer> ().bounds.size.y;

    Vector3 rescale = theGameObject.transform.localScale;

    rescale.y = newSize * rescale.y / size;

    theGameObject.transform.localScale = rescale;

}
Run Code Online (Sandbox Code Playgroud)