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; }