/// <summary>
 /// 回收
 /// </summary>
 protected override void OnRecycle()
 {
     mGuideCommandSender.guideWindow.RemoveGraphicMask(mGraphicMask);
     mGraphicMask        = null;
     mGuideCommandSender = null;
     base.OnRecycle();
 }
Пример #2
0
    /// <summary>
    /// 是否是指定的遮罩
    /// </summary>
    /// <param name="_graphicMask">遮罩</param>
    /// <returns>true:是,false:否</returns>
    public bool IsGraphic(AbsUIGuideGraphic _graphicMask)
    {
        bool result = false;

        if (guideGraphic != null && _graphicMask != null)
        {
            result = guideGraphic.Equals(_graphicMask);
        }
        return(result);
    }
    /// <summary>
    /// 获得引导Graphic遮罩
    /// </summary>
    /// <param name="_type">类别</param>
    /// <param name="_index">索引</param>
    /// <returns>引导Graphic遮罩</returns>
    public AbsUIGuideGraphic GetGraphicMask(int _type, int _index)
    {
        AbsUIGuideGraphic result = default;

        if (mUIGuideGraphicMaping.ContainsKey(_type) && mUIGuideGraphicMaping[_type].ContainsKey(_index))
        {
            result = mUIGuideGraphicMaping[_type][_index];
        }
        return(result);
    }
Пример #4
0
 /// <summary>
 /// 应用遮罩
 /// </summary>
 /// <param name="_graphic">遮罩</param>
 public void ApplyGraphic(AbsUIGuideGraphic _graphic)
 {
     if (_graphic != null)
     {
         guideGraphic = _graphic;
         mImgFramePrompt.CopyRectTransformFrom(_graphic.graphic);
         XLS_Config_Table_UserGuideStyle style = (XLS_Config_Table_UserGuideStyle)_graphic.styleData;
         mTxtGuideContent.text = style.content;
         SetArrowEdge(mImgArrow.rectTransform, style.enArrowAnchor);
         SetDescEdge(mImgDescBg.rectTransform, style.enArrowAnchor, style.contentWidth);
     }
 }
Пример #5
0
    /// <summary>
    /// 移除GraphicMask遮罩
    /// </summary>
    /// <param name="_graphicMask">遮罩</param>
    protected override void OnRemoveGraphicMask(AbsUIGuideGraphic _graphicMask)
    {
        UIGuidePrompt run = null;

        foreach (UIGuidePrompt p in mRunningPrompt)
        {
            if (p.IsGraphic(_graphicMask))
            {
                run = p;
                break;
            }
        }
        run.gameObject.SetActive(false);
        mRunningPrompt.Remove(run);
        mUIGuidePromptQueue.Enqueue(run);
        base.OnRemoveGraphicMask(_graphicMask);
    }
Пример #6
0
    /// <summary>
    /// 添加GraphicMask遮罩
    /// </summary>
    /// <param name="_graphicMask">遮罩</param>
    protected override void OnAddGraphicMask(AbsUIGuideGraphic _graphicMask)
    {
        UIGuidePrompt prompt = null;

        if (mUIGuidePromptQueue.Count > 0)
        {
            prompt = mUIGuidePromptQueue.Dequeue();
        }
        else
        {
            GameObject go = GameObject.Instantiate(mUIGuidePrompt.gameObject);
            go.AddDynamicComponent <UIGuidePrompt>();
            prompt.gameObject.transform.SetParent(mUIGuidePrompt.gameObject.transform.parent, false);
        }
        prompt.gameObject.SetActive(true);
        prompt.ApplyGraphic(_graphicMask);
        mRunningPrompt.Add(prompt);
        base.OnAddGraphicMask(_graphicMask);
    }
    /// <summary>
    /// 是否满足条件
    /// </summary>
    /// <param name="_conditions">匹配组</param>
    /// <param name="_sender">引导命令</param>
    /// <param name="_sponsor">条件匹配发起者</param>
    /// <param name="_resolveStatus">解析状态</param>
    /// <param name="_status">当前状态</param>
    /// <param name="_parameters">参数</param>
    /// <returns>true:满足条件,false:不满足条件</returns>
    protected override bool OnIsMatchCondition(IGuideCommand _sender, List <AbsGuideResolveMatchCommand> _conditions,
                                               IGuideMatchConditionCommand _sponsor, enGuideStatus _resolveStatus, enGuideStatus _status,
                                               params object[] _parameters)
    {
        bool result = base.OnIsMatchCondition(_sender, _conditions, _sponsor, _resolveStatus, _status, _parameters);

        if (_parameters != null && mGraphicMask == null)
        {
            foreach (object p in _parameters)
            {
                if (p is AbsUIWindowView)
                {
                    AbsUIWindowView w = (AbsUIWindowView)p;
                    if (w.config.name.Equals(windowName))
                    {
                        mGuideCommandSender = _sender;
                        mControl            = w.FindCtrlByNameIsSelfOrParent <UIBehaviour>(controlName);
                        mGraphicMask        = new UIGuideGraphic((int)_sender.status, w.FindCtrlByNameIsSelfOrParent <Graphic>(graphicMask), referObjectIndex);
                        if (mControl != null)
                        {
                            break;
                        }
                    }
                }
            }
        }

        result &= mControl != null && mGraphicMask != null && mGraphicMask.graphic != null &&
                  mGraphicMask.graphic.gameObject.activeInHierarchy == mGraphicMaskActiveSelf;
        if (result)
        {
            UIGuideValidate validate = _sender.CreateValidateMono <UIGuideValidate>(mControl, (int)_sender.status, referObjectIndex);
            validate.OnEventValidate += Validate_OnEventValidate;
        }
        return(result);
    }
 /// <summary>
 /// 移除GraphicMask遮罩
 /// </summary>
 /// <param name="_graphicMask">遮罩</param>
 protected virtual void OnRemoveGraphicMask(AbsUIGuideGraphic _graphicMask)
 {
 }
Пример #9
0
 /// <summary>
 /// 注销Dirty事件
 /// </summary>
 /// <param name="_graphic">绘制</param>
 void OnUnRegisterDirty(AbsUIGuideGraphic _graphic)
 {
     _graphic.graphic.UnregisterDirtyLayoutCallback(OnDirtyAction);
     _graphic.graphic.UnregisterDirtyMaterialCallback(OnDirtyAction);
     _graphic.graphic.UnregisterDirtyVerticesCallback(OnDirtyAction);
 }