2017-02-05 9 views
0

レンダラを実行時にパネルに左から右にスプライトしようとしています。私は親としてパネルを設定する前と後の両方の位置を設定しようとしたが、それを動作させるように見えることはできません。オブジェクトは、パネルの中央、画面の中央、または画面の外側のどこかに表示されます。私は座標や何かの間の基底の変化を理解していないと思う。ここで実行時に適切な配置でパネル上のオブジェクトをインスタンス化できません

は、これまでの私のコードです:

public class LoadPanel : MonoBehaviour { 

    public List<GameObject> spriteRendererList = new List<GameObject>(); 
    public GameObject spritePanel; 

    void Start() { 
     Sprite[] spriteArray = Resources.LoadAll<Sprite>("sprites"); 
     Vector3 panelPos = spritePanel.transform.position; 
     RectTransform panelRT = spritePanel.GetComponent<RectTransform>(); 
     float panelWidth = panelRT.rect.width; 

     for (int i = 0; i < spriteArray.Length;; i++) 
     { 
      Vector3 panelItemPos = new Vector3(panelPos.x + i * 5, panelPos.y, 0); 
      Instantiate(spriteRendererList[i], panelItemPos, Quaternion.identity); 
      spriteRendererList[i].transform.SetParent(spritePanel.transform); 
      spriteRendererList[i].transform.position = panelPos + new Vector3((panelPos.x-panelWidth)/2 + i*10,0,0); 
     } 
} 

誰もが私が欠けている何で私を助けることができますか?

ありがとうございます!

答えて

0

私はパネルの適切な位置と幅/長さを決定するためにgetWorldCorners()機能を使用してこれを解決しました。以前のアプローチがうまくいかなかった理由はまだ分かりませんが、getWorldCornersでこの問題を修正する必要があります。

関連する問題