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)
但是,这只是改变了比例,我需要将游戏对象更改为精确的长度.有没有直接的方法来实现这一目标?
我创建了一个解决方法函数,将特定长度转换为比例(对于将来可能会发现此问题的任何人).游戏对象只能通过缩放更改其大小,但可以通过渲染器找到它们的确切大小.使用一点插值,您可以将其转换为新的比例,以将对象的大小调整为精确的大小.
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)