/// <summary> /// Sets the side menu buttons state /// </summary> private void SetButtonsStateUI(bool clear = false) { ARObject selectedObject = SelectionManager.Instance.SelectedObject; if (selectedObject != null) { if (clear) { TranslateButton.GetComponent <Image>().color = (new Color(1, 1, 1, AlphaDisabled)); RotateButton.GetComponent <Image>().color = (new Color(1, 1, 1, AlphaDisabled)); ScaleButton.GetComponent <Image>().color = (new Color(1, 1, 1, AlphaDisabled)); CompassButton.GetComponent <Image>().color = (new Color(1, 1, 1, AlphaDisabled)); } HandlerObject.HandlerMode handlerMode = selectedObject.Transformation.Handler.Mode; switch (handlerMode) { case HandlerObject.HandlerMode.Translate: TranslateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f); RotateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); ScaleButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); CompassButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); break; case HandlerObject.HandlerMode.Rotate: TranslateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); RotateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f); ScaleButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); CompassButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f); break; case HandlerObject.HandlerMode.Scale: TranslateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); RotateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); ScaleButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f); CompassButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); break; default: TranslateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaEnabled), 0.2f); RotateButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); ScaleButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); CompassButton.GetComponent <Image>().DOColor(new Color(1, 1, 1, AlphaDisabled), 0.2f); break; } } }
/// <summary> /// Updates this instance. /// </summary> void Update() { if (selectedObject != null) { int moving = TouchManager.Instance.TouchsMoving; bool doubleTap = TouchManager.Instance.DoubleTap; mode = selectedObject.Transformation.Handler.Mode; bool alowMoving = false; if (TranslationType == TranslationMode.Grab) alowMoving = moving > 0; else if (TranslationType == TranslationMode.Tap) alowMoving = moving > -1; else if (TranslationType == TranslationMode.DoubleTap) alowMoving = moving > -1 && doubleTap; if (doubleTap) { var targetObj = SelectionManager.Instance.GetObjectHit(); if (targetObj != null && !targetObj.Selected) { ObjectManager.Instance.MoveBallToSnap(targetObj.SnapObject.position); alowMoving = false; } } if ((mode == HandlerObject.HandlerMode.Translate || AutoSetTranformMode) && CanMove && selectedObject.Transformation.CanInteract && isMoving && alowMoving) MoveObject(); bool alowRotation = false; if (RotationType == RotationMode.OneFinger) alowRotation = moving > 0; else if (RotationType == RotationMode.TwoFingers) alowRotation = moving > 1; if ((mode == HandlerObject.HandlerMode.Rotate || AutoSetTranformMode) && CanRotate && isRotating && alowRotation) RotateObject(); if ((mode == HandlerObject.HandlerMode.Scale || AutoSetTranformMode) && CanScale && isScaling && moving > 0) ScaleObject(); } }
/// <summary> /// Sets mode. /// </summary> /// <param name="handlerMode">The handler mode.</param> public void SetMode(HandlerObject.HandlerMode handlerMode) { mode = handlerMode; }