Esempio n. 1
0
        /// 根据输入的按钮出现顺序,设置一个按钮的基准点和实际位置
        /// </summary>
        /// <param name="qFrom">从哪个象限出发</param>
        public void SetShowDirection(QUADRANT qFrom)
        {
            QUADRANT qTo = this.Quadrant;

            float dx = COORDINATE_X[(int)qFrom] - COORDINATE_X[(int)qTo];
            float dy = COORDINATE_Y[(int)qFrom] - COORDINATE_Y[(int)qTo];

            // 设置重心
            Vector2 pivot;

            pivot.x          = ((dx * 0.5f) + 0.5f);
            pivot.y          = ((dy * 0.5f) + 0.5f);
            transBlock.pivot = pivot;

            // 设置位置
            Vector3 pos;

            pos.x = CenterPosition.x + (pivot.x - 0.5f) * menu.ButtonWidth;
            pos.y = CenterPosition.y + (pivot.y - 0.5f) * menu.ButtonHeight;
            pos.z = 0;
            transBlock.localPosition = pos;

            // 设置转场
            tweenRotationForShow.from.x = dy * 90;
            tweenRotationForShow.from.y = dx * 90;


            //Debug.Log(" " + qFrom + " -> " + Quadrant);
            //Debug.Log("center=" + CenterPosition);
            //Debug.Log("pivot=" + pivot);
            //Debug.Log("pos=" + pos);
        }
Esempio n. 2
0
        /// <summary>
        /// 关闭除指定位置之外的其他位置上的按钮所包含的自面板
        /// </summary>
        /// <param name="q"></param>
        public void HideOthersSubPanel(QUADRANT q)
        {
            for (int i = 0; i < buttons.Length; i++)
            {
                if (i == (int)q)
                {
                    continue;
                }

                BlockButton otherBtn = buttons[i];
                if (otherBtn == null)
                {
                    continue;
                }

                if (otherBtn.nextPanel != null)
                {
                    otherBtn.nextPanel.HideImmediately();
                }
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 在指定象限添加一个按钮
        /// </summary>
        /// <param name="button"></param>
        /// <param name="q"></param>
        public BlockButton CreateButton(BlockPanel panel, QUADRANT q, BlockButtonData buttonData)
        {
            GameObject  buttonObj = PrefabUtils.CreateGameObjectToParent(panel.gameObject, BlockButtonPrefab);
            BlockButton button    = buttonObj.GetComponent <BlockButton>();

            // 初始化按钮
            button.Init(this, panel, q, buttonData);

            panel.SetButton(button, q);

            // 汇总按钮点击回调
            //button.cbClick += this.OnClickButton;

            buttonObj.SetActive(false);

            // 所有button在menu中留记录,以便修改
            // 这里暂时不判断按钮重名了……原则上,按钮不允许重名,可以在编辑器层面保证
            buttonDic.Add(button.buttonId, button);

            return(button);
        }
Esempio n. 4
0
        /// <summary>
        /// 初始化按钮
        /// </summary>
        /// <param name="panel"></param>
        /// <param name="q"></param>
        public void Init(BlockMenu menu, BlockPanel panel, QUADRANT q, BlockButtonData buttonData)
        {
            this.menu    = menu;
            currentPanel = panel;
            Quadrant     = q;

            buttonId   = buttonData.buttonId;
            buttonName = buttonData.buttonName;

            canClick = buttonData.canClick;

            transBlock = transform as RectTransform;
            transBlock.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, menu.ButtonWidth);
            transBlock.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, menu.ButtonHeight);

            transButton = uiButton.transform as RectTransform;
            transButton.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, menu.ButtonWidth);
            transButton.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, menu.ButtonHeight);


            CenterPosition = new Vector2(
                (menu.ButtonWidth + menu.ButtonInterval) * COORDINATE_X[(int)q],
                (menu.ButtonHeight + menu.ButtonInterval) * COORDINATE_Y[(int)q]);


            //uiButton.onClick.AddListener(OnClick);

            // 设置按钮标题
            SetText(buttonData.buttonName);

            // 设置颜色
            SetButtonColor(buttonData.buttonColor);

            // 设置图片
            SetButtonPic("UI/Texture/" + buttonData.buttonPic);
        }
Esempio n. 5
0
 /// <summary>
 /// 设置一个指定位置的按钮
 /// </summary>
 /// <param name="button"></param>
 /// <param name="q"></param>
 public void SetButton(BlockButton button, QUADRANT q)
 {
     buttons[(int)q] = button;
 }
Esempio n. 6
0
 /// <summary>
 /// 按象限获取按钮
 /// </summary>
 /// <param name="q"></param>
 /// <returns></returns>
 public BlockButton GetButton(QUADRANT q)
 {
     return(buttons[(int)q]);
 }