Exemplo n.º 1
0
 public override void OnGUI(Rect clipRect)
 {
     if (!Visible)
     {
         return;
     }
     mResizeNode = false;
     QuickGUI.DrawBox(GlobalRect, new Color(0.3f, 0.3f, 0.3f), Color.black, 2, true);
     //GUI.Label(GlobalRect, "", "sv_iconselector_back");
     if (Mode == EMode.alter_node)
     {
         OnContextDecoratorGUI();
         OnDecoratorsListGUI();
     }
     else if (Mode == EMode.new_node)
     {
         OnNewNodeGUI();
     }
     //GUI.Label(GlobalRect, "", "Icon.OutlineBorder");
     if (mResizeNode)
     {
         BehaviourNodeGUI node = Context as BehaviourNodeGUI;
         if (node != null)
         {
             node.Resize();
         }
         mResizeNode = false;
     }
     if (!Visible)
     {
         Hide();
     }
 }
Exemplo n.º 2
0
        public override bool InteractMouseClick(EMouseButton button, Vector2 mousePosition)
        {
            if (!Visible)
            {
                return(false);
            }
            mFocusSearch = mRaycastSearch;
            if (mRaycastMeta != null && button == EMouseButton.left)
            {
                if (mRaycastMeta.IsTitle)
                {
                    mRaycastMeta.Collaped = !mRaycastMeta.Collaped;
                }
                //mDropDownMeta = mRaycastMeta == mDropDownMeta ? null : mRaycastMeta;
                else
                {
                    switch (mRaycastMeta.BTMeta.NodeType)
                    {
                    case EBTNodeType.task:
                    case EBTNodeType.controller:
                        mWindow.AddChild(Context, mRaycastMeta.BTMeta, new Vector2(LocalRect.center.x, LocalRect.yMin));
                        Hide();
                        return(true);

                    case EBTNodeType.condition:
                    case EBTNodeType.service:
                        BehaviourNodeGUI node = Context as BehaviourNodeGUI;
                        if (node != null)
                        {
                            BehaviourNodeGUI.Decorator decor = node.AddDecorator(mRaycastMeta.BTMeta);
                            if (decor != null && decor.Properties.Length > 0)
                            {
                                //mFocusDecorator = decor;
                                decor.UpdatePropertiesInfo();
                            }
                            //Hide();
                            node.Resize();
                            if (decor == null)
                            {
                                EditorCanvasTip.NewTip("不能添加<color=yellow>" + mRaycastMeta.BTMeta.DisplayName + "</color>", 2)
                                .Show(mWindow.RootCanvas, mWindow.RootCanvas.CalculateLocalPosition(mousePosition - Vector2.up * 20));
                            }
                        }
                        return(true);

                    default:
                        break;
                    }
                }
            }
            bool act = mFocusProperty == null && mRaycastProperty == null;

            if (mFocusProperty != mRaycastProperty)
            {
                SubmitProperty();
            }
            mFocusProperty  = mRaycastProperty;
            mFocusDecorator = mRaycastDecorator;
            if (act && mRaycastDecorator != null && mRaycastDecorator.BTMeta.NodeType == EBTNodeType.condition)
            {
                mRaycastDecorator.NotFlag = !mRaycastDecorator.NotFlag;
            }
            //if (mRaycastDecorator != null && mRaycastDecorator.Properties.Length > 0)
            //{
            //    mFocusDecorator = mRaycastDecorator;
            //}
            return(Visible);
        }