private void OnSwitch(OperateModeType operateType) { if (operateType != OperateModeType.Tool) { SetClear(); } }
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; }
UIToolButton GetToolButton(OperateModeType operate) { for (int i = 0; i < ToolButtons.Length; i++) { if (ToolButtons[i].modeType == operate) { return(ToolButtons[i]); } } return(null); }
void SetButton(OperateModeType modeType) { var button = GetToolButton(modeType); if (button != null) { button.Button.IsEnable = true; } if (MSwitchManager.CurrentMode == modeType) { buttonGroup.SetButton(button.Button); } }
/// <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(); }