public override void StepChanged() { InstructionRotateCamera.leftSwipeNeeded = !InstructionRotateCamera.leftSwipeNeeded; InstructionRotateCamera.isStage2enabled = true; nextStepConditionExplained = false; InstructionRotateCamera.StartRotate(); }
void Start() { leftSwipeNeeded = true; conditionNames = new string[conditionsCount]; conditionNames[0] = isText6NeededConditionName; conditionNames[1] = stageExitConditionName; InstructionRotateCamera.StopRotate(); ChangeStep(stageStartConditionName, true); }
private IEnumerator CoveringAction() { while (true) { timeUnderCovering = 0f; while (!isCovering) //Цикл выполняется, пока игрок не укрыт одеялом { if (staminaPresentValue != _staminaMaxValue) //Операции в условии выполняются, если выносливость была потрачена { staminaPresentValue = Mathf.Clamp((staminaPresentValue += (Time.fixedDeltaTime / regenerationStaminaDebuffCoefficient)), staminaMinValue, _staminaMaxValue); //Восстановление выносливости до заданных пределов ButtonFillAmount(); } yield return(new WaitForFixedUpdate()); } canUseButton = !canUseButton; //Запрещаем нажатие кнопки animator.SetBool(conditionName, isCovering); //Проигрываем анимацию покрывала coveringSound.Play(); InstructionRotateCamera.StopRotate(); InstructionCamAnimation.CoveringEffect(); yield return(new WaitForSeconds(animationCoveringDuration)); //Приостанавливаем на время действия анимации покрывала canUseButton = !canUseButton; while (isCovering) //Цикл выполняется, пока игрок укрыт одеялом { if (staminaPresentValue <= 0) //Если стамина падает ниже нуля, прерываем цикл { isCovering = !isCovering; } staminaPresentValue -= Time.fixedDeltaTime; //Отнимаем стамину timeUnderCovering += Time.fixedDeltaTime; //Просчитываем, сколько времени игрок находится под одеялом ButtonFillAmount(); yield return(new WaitForFixedUpdate()); } canUseButton = !canUseButton; //Запрещаем нажатие кнопки, animator.SetBool(conditionName, isCovering); //И проигрываем coveringSound.Play(); InstructionCamAnimation.CoveringEffectReverse(); //Также проигрываем анимацию обратного движения камеры yield return(new WaitForSeconds(animationCoveringDuration)); //Пока проигрывается анимация движения камеры, запрещено ее поворачивать InstructionRotateCamera.StartRotate(); //Разрешаем камере двигаться yield return(new WaitForSeconds(remainingTime)); //Ожидание делается для того, чтобы игрок не мог постоянно нажимать на кнопку активации, тем самым, мешая логике аниматора canUseButton = !canUseButton; //Разрешаем нажатие кнопки } }
public static void CoveringEffect() { InstructionRotateCamera.SetDefaultTransform(); anim.Play(cameraCoveringEffectName); }