Beispiel #1
0
        void Start()
        {
            Panel = UICommon.CreateUIElementRoot("DialogFog", new Vector2(Screen.width, Screen.height));
            Panel.AddComponent <CanvasRenderer> ();
            Panel.AddComponent <DialogCloseButton> ().dialog = this;
            img               = Panel.AddComponent <Image> ();
            img.color         = new Color(0, 0, 0, alpha);
            img.fillCenter    = true;
            img.raycastTarget = true;
            img.enabled       = true;
            RectTransform R = Panel.GetComponent <RectTransform> ();

            R.anchorMin = new Vector2(0, 0);
            R.anchorMax = new Vector2(1, 1);
            R.pivot     = new Vector2(0.5f, 0.5f);
            Panel.transform.SetParent(FindComponentInParent <Canvas>().transform);
            Panel.transform.localScale = new Vector3(1, 1, 1);
            R.offsetMax = new Vector2(0, 0);
            R.offsetMin = new Vector2(0, 0);
            transform.SetAsLastSibling();
        }
Beispiel #2
0
        static void CreateDialogGrid(MenuCommand menuCmd)
        {
            // 创建游戏对象
            float      w    = 300f;
            float      h    = 200f;
            GameObject root = UICommon.CreateUIElementRoot("DialogGrid", w, h);

            root.AddComponent <CanvasRenderer> ();
            Image img = root.AddComponent <Image> ();

            img.color         = new Color(1, 1, 1, 0.75f);
            img.fillCenter    = true;
            img.raycastTarget = true;
            img.sprite        = Common.findRes <Sprite>("Background");
            if (img.sprite != null)
            {
                img.type = Image.Type.Sliced;
            }
            RectTransform R = root.GetComponent <RectTransform> ();

            R.anchorMin = new Vector2(0, 1);
            R.anchorMax = new Vector2(0, 1);
            R.pivot     = new Vector2(0, 1);
            Dialog dlg = root.AddComponent <Dialog> ();

            //DialogGrid dlgGrid = root.AddComponent<DialogGrid> ();
            root.AddComponent <DialogGrid> ();

            // 创建Text对象
            GameObject text = UICommon.CreateUIText("Text", "对话框", root);

            R           = text.GetComponent <RectTransform> ();
            R.anchorMin = new Vector2(0, 1);
            R.anchorMax = new Vector2(1, 1);
            R.pivot     = new Vector2(1, 1);
            //R.= new Rect (8, -5, 8, 32);
            R.anchoredPosition = new Vector2(0, -5);
            R.sizeDelta        = new Vector2(0, 32);
            Text textPro = text.GetComponent <Text> ();

            textPro.fontSize             = 20;
            textPro.supportRichText      = true;
            textPro.resizeTextForBestFit = true;
            textPro.resizeTextMinSize    = 1;
            textPro.resizeTextMaxSize    = 20;
            textPro.color = Color.white;
            text.AddComponent <Outline> ();
            //text.AddComponent<Shadow> ();

            // 内容区
            GameObject content = UICommon.CreateUIObject("Content", root);

            R                  = content.GetComponent <RectTransform> ();
            R.anchorMin        = new Vector2(0, 0);
            R.anchorMax        = new Vector2(1, 1);
            R.pivot            = new Vector2(0, 1);
            R.anchoredPosition = new Vector2(12, -40);
            R.sizeDelta        = new Vector2(-24, -52);
            img                = content.AddComponent <Image> ();
            img.color          = new Color(1, 1, 1, 0.5f);
            img.fillCenter     = true;
            img.raycastTarget  = true;
            content.AddComponent <Mask> ();
            ScrollRect scroll = content.AddComponent <ScrollRect>();

            scroll.horizontal        = true;
            scroll.vertical          = true;
            scroll.movementType      = ScrollRect.MovementType.Clamped;
            scroll.elasticity        = 0.1f;
            scroll.inertia           = true;
            scroll.decelerationRate  = 0.135f;
            scroll.scrollSensitivity = 1;
            dlg.content = content.transform;

            GameObject body = new GameObject("Body");

            body.transform.SetParent(content.transform, false);
            RectTransform ItemsRect = body.AddComponent <RectTransform>();

            ItemsRect.anchorMin        = Vector2.zero;
            ItemsRect.anchorMax        = Vector2.one;
            ItemsRect.anchoredPosition = Vector2.zero;
            ItemsRect.sizeDelta        = Vector2.zero;
            body.AddComponent <CanvasRenderer>();
            scroll.content = body.GetComponent <RectTransform>();
            GridLayoutGroup grid = body.AddComponent <GridLayoutGroup> ();

            grid.cellSize = new Vector2(72, 72);
            //body.AddComponent<Mask> ().showMaskGraphic = true;


            // 关闭按钮
            GameObject close = UICommon.CreateUIObject("BtnClose", root);

            R                  = close.GetComponent <RectTransform> ();
            R.anchorMin        = new Vector2(1, 1);
            R.anchorMax        = new Vector2(1, 1);
            R.pivot            = new Vector2(0.5f, 0.5f);
            R.anchoredPosition = new Vector2(-24, -21);
            R.sizeDelta        = new Vector2(24, 24);
            close.AddComponent <CanvasRenderer> ();
            img               = close.AddComponent <Image> ();
            img.color         = new Color(1, 1, 1, 0.5f);
            img.fillCenter    = true;
            img.raycastTarget = true;
            img.sprite        = Common.findRes <Sprite>("UISprite");
            if (img.sprite != null)
            {
                img.type = Image.Type.Sliced;
            }
            DialogCloseButton closeSript = close.AddComponent <DialogCloseButton> ();

            closeSript.dialog = dlg;

            // 放入到UI Canvas中
            UICommon.PlaceUIElementRoot(root, menuCmd);
        }