Example #1
0
 private void OnSwitch(OperateModeType operateType)
 {
     if (operateType != OperateModeType.Tool)
     {
         SetClear();
     }
 }
Example #2
0
 private static void SendListener(OperateModeType modeType)
 {
     for (int i = 0; i < Actions.Count; i++)
     {
         Actions[i].Invoke(modeType);
     }
 }
        void OnKinectUpdate()
        {
            if (!isEnable)
            {
                return;
            }

            SetHandStatus(0); //右手
            SetHandStatus(1); //左手

            rightHandOperate.OnOperateObjectHandle();
            leftHandOperate.OnOperateObjectHandle();

            //不同模式中的不同操作
            switch (MSwitchManager.CurrentMode)
            {
            //不用区分是左手旋转还是右手旋转,双手使用时会切换到缩放模式
            case OperateModeType.Rotate:
                if (GetInputHand(0).HandStatus == MInputHandStatus.Grip)
                {
                    rightHandOperate.OnGestureAction(leftHandOperate, true);
                }
                if (GetInputHand(1).HandStatus == MInputHandStatus.Grip)
                {
                    leftHandOperate.OnGestureAction(rightHandOperate, true);
                }
                break;

            case OperateModeType.Zoom:
                Vector2 left  = leftHandOperate.Operate.InputHand.ScreenPoint;
                Vector2 right = rightHandOperate.Operate.InputHand.ScreenPoint;
                if (operateModeType != MSwitchManager.CurrentMode)
                {
                    lastLeftPos  = left;
                    lastRightPos = right;
                }
                float lastDis = Vector2.Distance(lastRightPos, lastLeftPos);
                float dis     = Vector2.Distance(left, right);
                float offset  = (dis - lastDis) / 1200;
                EventCameraZoom.SendListener(offset);
                lastLeftPos  = left;
                lastRightPos = right;
                //rightHandOperate.OnGestureAction(leftHandOperate,false);
                //leftHandOperate.OnGestureAction(rightHandOperate,false);
                break;

            case OperateModeType.Tool:
                break;

            default:
                break;
            }
            operateModeType = MSwitchManager.CurrentMode;
        }
Example #4
0
        UIToolButton GetToolButton(OperateModeType operate)
        {
            for (int i = 0; i < ToolButtons.Length; i++)
            {
                if (ToolButtons[i].modeType == operate)
                {
                    return(ToolButtons[i]);
                }
            }

            return(null);
        }
Example #5
0
        void SetButton(OperateModeType modeType)
        {
            var button = GetToolButton(modeType);

            if (button != null)
            {
                button.Button.IsEnable = true;
            }

            if (MSwitchManager.CurrentMode == modeType)
            {
                buttonGroup.SetButton(button.Button);
            }
        }
Example #6
0
        /// <summary>
        /// 初始化激活的模式
        /// </summary>
        /// <param name="modeType"></param>
        public static void OnInitializeMode(OperateModeType modeType, OperateModeType defaultMode = OperateModeType.Move)
        {
            ActiveMode  = modeType | OperateModeType.Tool; //添加工具
            CurrentMode = defaultMode;

            //UITool.UIToolManager magiCloudTool = GameObject.FindObjectOfType<UITool.UIToolManager>();
            //if (magiCloudTool == null)
            //{
            //    var toolObject = Resources.Load<GameObject>("MagiCloudTools");
            //    if (toolObject == null) throw new Exception("MagiCloudTools工具为Null,检查资源是否存在此预制物体");

            //    magiCloudTool = GameObject.Instantiate(toolObject).GetComponentInChildren<UITool.UIToolManager>();
            //}

            //  magiCloudTool.OnInitialize();
        }