Unity UGUI動態生成控件


       一、 首先你得先清楚RectTransform組件的一些程序控制  

        1. 先得到UGUI控件上面的RectTransform組件

RectTransform rtr = gameObject.GetComponent<RectTransform>();

          2.  設置top和bottom值

rtr.offsetMax = new Vector2(rtr.offsetMax.x, top);
rtr.offsetMin = new Vector2(rtr.offsetMin.x, bottom);

           3. 設置width,height

rtr.sizeDelta = new Vector2(width, height);

           4.  設置pos

rtr.anchoredPosition3D = new Vector3(posx,posy,posz);

rtr.anchoredPosition = new Vector2(posx,posy);

           二、動態生成Button實例

          1. 目標是要生成這樣一個Button,這是手工設置的方式:

                    

             2. 現在是代碼方式:

        canvas = GameObject.Find("Canvas").transform;
        if (ButtonPrefab)
        {
            NewButton = (Button)Instantiate(ButtonPrefab);
            NewButton.transform.SetParent(canvas);
            RectTransform rtr = NewButton.GetComponent<RectTransform>();
            //設置父級基准位置
            rtr.anchorMin = new Vector2(0.5f,0.5f);
            rtr.anchorMax = new Vector2(0.5f, 0.5f);
            //定義控件自身定位點位置
            rtr.pivot = new Vector2(0.5f, 0.5f);
            //定義控件定位點相對基准位置的偏移
            rtr.anchoredPosition = new Vector2(0, 0);
            //定義控件大小
            rtr.sizeDelta = new Vector2(200, 80);
            //事件添加
            NewButton.onClick.AddListener(ButtonClicked);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM