画面の中央に優先順位に2D画像(SpriteRenderer)

図示のように:

 C#コード:

1  使用にSystem.Collectionsを、
 2  使用System.Collections.Genericは;
 3。 使用UnityEngine;
 4。 
5。 パブリック クラスSpriteRendererTest:{MonoBehaviour
 6。      一覧<変形>一覧= 新しい新しいリスト<変形>();   // 親オブジェクトストアの子オブジェクト
7      リスト< フロート > = rendererWidthList 新しい新しいリスト< フロート >(); // メモリサブオブジェクトの幅
。8      専用のVector3 centerPos = Vector3.zero;   // 中心位置
9      プライベート フロート OFFSET =0.2F ; //は、オフセット
10      プライベート フロート長= は0.0fを ; // 長さを初期化する
。11  
12である     ボイド開始(){
 13は         //はすべてオブジェクト横切る
14          のためのINT I = 0 ; I <gameObject.transform.childCount。 ++ I ){
 15              VAR子供= gameObject.transform.GetChild(I);
 16              VaRの幅= child.GetComponent <SpriteRenderer> ().sprite.bounds.size.x;
 17。             IF(IはgameObject.transform.childCountを< - 1。 18             {
 19。                  長さ+幅+ = ; OFFSET
 20である             }
 21れる             {
 22は                  長さ+ = 幅;
 23である             }
 24              list.add(子);
 25              rendererWidthList.Add(幅)は、
 26である         }
 27          VAR STARTX = centerPos.x -長さ/ 2.0f ;   // 最初の子オブジェクトの左境界
28          のforeachVARの子供におけるリスト)
 29          {
 30              int型のインデックス= 0;
31              child.transform.position = 新規のVector3(STARTX + rendererWidthList [インデックス] / 2.0f00 );
32              STARTX = STARTX +オフセット+ rendererWidthList [インデックス]。
33              インデックス+ = 1 ;
34          }     
 35      }
 36 }

 

LUAコード:

1  - 创建数组
2      ローカル親= UGameObject.Find(" " 3      ローカル objectList = {}
 4      ローカル rendererWidthList = {}
 5      のための i = 1、parent.transform.childCountを行う
6          ローカル子= parent.transform:でGetChild (I - 1 7          ローカルレンダラ= 子:GetComponent(typeof演算(USpriteRenderer))
 8          ローカル幅= renderer.sprite.bounds.size.x
 9          table.insert(objectList、子)
 10          table.insert (rendererWidthList、幅)
 11      の端部
12  
13      ローカル長さ= 0    - 初始化长度
14      ローカルオフセット= 0.2  - 间隔
15      のための i = 1、#objectListを行う
16          ローカル OBJ = objectList [I ]
 17          ローカル幅= rendererWidthList [i]が
 18          であれば、私== #objectList 次いで
19              長さ=長さ+ 20              休憩
21          
22          長さ=長さ+幅+は、オフセット
 23      の端部
24  
25      ローカル centerPos = Vector3.zero   - 中心位置
26      ローカル STARTX = centerPos.x -長さ/ 2   - 初始位置
27  
28の     ために、I = 1 #objectListは、実行
29          ローカル OBJを= objectList [I]
 30          ローカル幅= rendererWidthList [I]
 31          obj.transform.position =のVector3(STARTX +幅/ 200 32         STARTX = STARTX +幅+は、オフセット
 33      の端を

 

おすすめ

転載: www.cnblogs.com/erdiba/p/11696105.html