public void manageTouches_canMove(bool[,] boolArray, DoorHitboxManager doorHitboxManager) { if (touchReader_keyboard.getHasMouseOrKeyInput()) { touchReturnPacket = touchReader_keyboard.getThumbstickData(normalStickPositions, shootingMode); } else { touchReturnPacket = touchReader.getThumbstickData(); } uiManager.setThumbsticks(touchReturnPacket); stickAngles_raw = touchReturnPacket.getStickAngles(); stickMagnitudes_raw = uiManager.getRealStickMagnitude(); hasTouches_raw = touchReturnPacket.getHasTouch(); setStickData(); // checkForDoubleTap_movement(); moveShip_target(stickAngle_movement, stickMagnitude_movement, boolArray, doorHitboxManager); checkCannonStick(); cannonFiringManager.checkCannonReload(playerBoatTransform_delayed.position); hasTouchPrevious_movement = hasTouch_movement; // hasTouchPrevious_cannon = hasTouch_cannon; }
public void setThumbsticks(TouchReturnPacket touchPacket) { Vector2 screenPoint; Vector2 newPlacement; // First the left thumbstick: if (touchPacket.getHasTouch()[0]) { if (!thumbstickWasActive[0]) { thumbstickWasActive[0] = true; stickBase_left.SetActive(true); stickKnob_left.SetActive(true); screenPoint = new Vector2(touchPacket.getStickCenterX()[0], touchPacket.getStickCenterY()[0]); RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out newPlacement); stickBase_left_transform.anchoredPosition = newPlacement; } screenPoint = new Vector2(touchPacket.getTouchX()[0], touchPacket.getTouchY()[0]); RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out newPlacement); newPlacement -= stickBase_left_transform.anchoredPosition; if (newPlacement.magnitude > stickMaxMag) { newPlacement = newPlacement.normalized * stickMaxMag; } realStickMag[0] = newPlacement.magnitude / stickMaxMag; newPlacement += stickBase_left_transform.anchoredPosition; stickKnob_left_transform.anchoredPosition = newPlacement; } else { if (thumbstickWasActive[0]) { thumbstickWasActive[0] = false; stickBase_left.SetActive(false); stickKnob_left.SetActive(false); realStickMag[0] = 0f; } } // Then the right thumbstick: if (touchPacket.getHasTouch()[1]) { if (!thumbstickWasActive[1]) { thumbstickWasActive[1] = true; stickBase_right.SetActive(true); stickKnob_right.SetActive(true); screenPoint = new Vector2(touchPacket.getStickCenterX()[1], touchPacket.getStickCenterY()[1]); RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out newPlacement); stickBase_right_transform.anchoredPosition = newPlacement; } screenPoint = new Vector2(touchPacket.getTouchX()[1], touchPacket.getTouchY()[1]); RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRect, screenPoint, null, out newPlacement); newPlacement -= stickBase_right_transform.anchoredPosition; if (newPlacement.magnitude > stickMaxMag) { newPlacement = newPlacement.normalized * stickMaxMag; } realStickMag[1] = newPlacement.magnitude / stickMaxMag; newPlacement += stickBase_right_transform.anchoredPosition; stickKnob_right_transform.anchoredPosition = newPlacement; } else { if (thumbstickWasActive[1]) { thumbstickWasActive[1] = false; stickBase_right.SetActive(false); stickKnob_right.SetActive(false); realStickMag[1] = 0f; } } }