将一组物体居中

时间:2014-07-06 23:33:36

标签: c# language-agnostic unity3d centering

注意:我尝试在C#中使用Unity执行此操作,但答案应该是适用于任何语言的算法,除非有特定于Unity或C#的特定方式。

我试图将一组不同的物体集中在一起。鉴于我们称之为numObjects的多个对象,我们称之为space的每个对象与屏幕大小之间的空间量,我们将对此进行调整Screen.width。 ll调用Screen.heightspace,我需要知道应该设置第一个对象的x。从那里开始,我只需添加{{1}}然后添加下一个对象。最后,第一个对象的左边缘和屏幕的左边缘之间的空间将与最后一个对象的右边缘和屏幕的右边缘之间的空间相同。

1 个答案:

答案 0 :(得分:0)

我可能会误解你要做的事情,但假设你想在屏幕上平均地水平放置物体,这只需要一些基本的数学:

int space = Screen.width / (numObjects+1);

编辑以回应澄清(再次简单的数学运算):

// determine the total width of the block of objects

totalWidthOfObjects = numObjects * widthOfEachObject
totalWidthOfSpacesBetweenObjects = (numObjects-1) * space
totalWidth = totalWidthOfObjects + totalWidthOfSpacesBetweenObjects

offsetFromLeft = (Screen.width - totalWidth) / 2

请注意,这假设每个Object具有相同的宽度,否则它会更复杂一些。