private void FailControl(RaycastHit hit, FingerWay way) { var stopPlatform = hit.transform.GetComponent <StopPlatformController>(); stopPlatform.CountReduction(way); if (PlatformManager.ins.active.FailController()) { levelfail.gameObject.SetActive(true); LeanTween.scale(levelfail, Vector3.zero, 0); LeanTween.scale(levelfail, Vector3.one, 1f).setEaseInOutQuart().setOnComplete(finishScene.ButtonCallback); } }
private bool RotateController(Vector3 rayDirection, FingerWay way) { foreach (var item in rotateControls) { Ray ray = new Ray(item.position, rayDirection); if (Physics.Raycast(ray, out RaycastHit hit, 0.3f)) { if (hit.transform.CompareTag(stopPlatform)) { FailControl(hit, way); return(false); } } } return(true); }
private void FruitMoveController(FingerWay way) { switch (way) { case FingerWay.right: if (WayController(Vector3.right, out RaycastHit hitR)) { if (RotateController(Vector3.right, way)) { FruitRotateMove(right.gameObject, Vector3.back, hitR, 90); } else { FruitRotateMoveStop(right.gameObject, Vector3.back, 5); } } break; case FingerWay.left: if (WayController(Vector3.left, out RaycastHit hitL)) { if (RotateController(Vector3.left, way)) { FruitRotateMove(left.gameObject, Vector3.forward, hitL, 90); } else { FruitRotateMoveStop(right.gameObject, Vector3.back, 5); } } break; case FingerWay.down: if (WayController(Vector3.back, out RaycastHit hitD)) { FruitSlidingMove(rotateFruit, hitD.transform, hitD); } break; case FingerWay.top: if (WayController(Vector3.forward, out RaycastHit hitT)) { FruitSlidingMove(rotateFruit, hitT.transform, hitT); } break; } }
public void CountReduction(FingerWay way) { switch (way) { case FingerWay.right: if (rightControlCount > 0) { rightControlCount--; } //rightControlCount = rightControlCount > 0 ? rightControlCount-- : rightControlCount; break; case FingerWay.left: if (leftControlCount > 0) { leftControlCount--; } //leftControlCount = leftControlCount > 0 ? leftControlCount-- : leftControlCount; break; } }