居中一组对象

本文关键字:一组 对象 | 更新日期: 2023-09-27 18:11:36

注意:我试图在Unity和c#中做到这一点,但答案应该是一个算法,可以在任何语言上工作,除非有一个特定于Unity或c#的特定方式来做到这一点。

我正在尝试将一组不同的对象居中。给定一些物体,我们称其为numObjects,每个物体之间的间距,我们称其为space,屏幕的大小,我们称其为Screen.widthScreen.height,我需要知道应该设置第一个物体的x点。从那里,我只是添加space然后下一个对象。最后,第一个对象的左边缘与屏幕左边缘之间的间距将与最后一个对象的右边缘与屏幕右边缘之间的间距相同。

居中一组对象

我可能搞错了你想做的事情,但假设你想在屏幕上等距地放置物体,这只需要一些基本的数学:

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

请注意,这里假设每个对象具有相同的宽度,否则它会稍微复杂一些。