Esempio n. 1
0
    public void Awake()
    {
        mTrans     = transform;
        mRectTrans = GetComponent <RectTransform>();

        // 通过配置获取可显示的最大buff数量
        mBuffMaxCount = GameConstHelper.GetInt("GAME_BUFF_MAX_COUNT");
        if (mBuffMaxCount == 0)
        {
            mBuffMaxCount = 5;
        }

        mBuffWidgets = new BuffWidget[mBuffMaxCount];

        // 获取所有buff显示的控件
        for (int i = 0; i < mBuffMaxCount; ++i)
        {
            Transform trans = mTrans.Find(string.Format("Buff{0}", i));

            var buffWidget = new BuffWidget();
            buffWidget.WidgetObject = trans.gameObject;
            buffWidget.BuffImage    = trans.Find("BuffTex").GetComponent <RawImage>();

            mBuffWidgets[i] = buffWidget;
        }

        mBuffIds = new List <uint>();
    }
Esempio n. 2
0
        private void Update()
        {
            var removed = new List <int>(widgets.Keys);
            var layout  = new GridLayout();

            int i = 0;

            foreach (var buff in session.Buffs)
            {
                if (!buff.IsMajor)
                {
                    continue;
                }

                BuffWidget widget;
                if (widgets.TryGetValue(buff.Id, out widget))
                {
                    removed.Remove(buff.Id);
                }
                else
                {
                    widget           = new BuffWidget(this);
                    widgets[buff.Id] = widget;
                }

                widget.Buff = buff;
                layout.SetColumnWidth(i, cframe.Width);
                layout.AddWidget(widget, 0, i);

                if (++i >= 5)
                {
                    break;
                }
            }

            foreach (var id in removed)
            {
                var widget = widgets[id];
                widget.Dispose();
                widget.Remove();
                widgets.Remove(id);
            }

            layout.Spacing = Spacing;
            layout.UpdateGeometry(0, 0, 0, 0);
        }