2014-07-06 80 views
0

注意:我試圖在Unity中使用C#來做這件事,但答案應該是一種適用於任何語言的算法,除非有一種特定於Unity或C#的特定方式來執行此操作。以一組對象爲中心

我正在嘗試集中一組不同的對象。給定一些我們稱爲numObjects的對象,我們將調用space的每個對象與屏幕的大小之間的空間量,我們將調用Screen.widthScreen.height,我需要知道x在哪應該設置第一個對象。從那裏,我只是添加space然後下一個對象。最終,第一個對象的左邊緣和屏幕左邊緣之間的空間將與最後一個對象的右邊緣和屏幕右邊緣之間的空間相同。

回答

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 

注意,這裏假設每個對象都有相同的寬度,否則它更復雜一點。

+0

我不想將對象均勻分佈,我想將對象居中。考慮這個:'OSOSOSOS'。 O代表一個物體,S代表一個空間。我想把它放在屏幕上,所以它看起來像這樣:'| OSOSOSOS |'。在那個例子中,任何一邊都有5個空格,所以它居中。 – nrubin29

+0

我現在來測試一下。謝謝! – nrubin29