// Update is called once per frame void Update() { _tw.Update(Time.deltaTime); if (!Input.GetButtonDown("Jump") && !InputUtility.CheckTouchPhase(TouchPhase.Began)) { return; } if (_tw.Writing) { _tw.PrintAll(); hint.text = "<JUMP> для продолжения"; } else { _tw.Stop(); EventManager.TriggerEvent(GameEventTypes.StartDialogComplete, null); } }
// Update is called once per frame void Update() { if (!_isReady) { return; } if (!_isRunning) { if (!Input.GetButtonDown("Jump") && !InputUtility.CheckTouchPhase(TouchPhase.Began)) { return; } if (!_frameSkipped) { _frameSkipped = true; return; } _isRunning = true; EventManager.TriggerEvent(GameEventTypes.StartRun, EventArgs.Empty); //rigid.velocity = Vector2.right*speed; } else { _score += speed * Time.deltaTime; _inAir = Math.Abs(rigid.velocity.y) > 0.001; var dx = speed * Time.deltaTime * Vector3.right; transform.position += dx; //rigid.MovePosition(transform.position+dx); if (!check.isStuck) { camera.gameObject.transform.position = new Vector3(transform.position.x + 6, 0, -10); if (Hp < MaxHp) { Hp += HpRegen * Time.deltaTime; if (Hp >= MaxHp) { Hp = MaxHp; } } else { hpBarVisible = false; } } else { Hp -= StuckHpLoss * Time.deltaTime; if (Hp <= 0f) { EventManager.TriggerEvent(GameEventTypes.Death, EventArgs.Empty); } if (Hp < MaxHp) { hpBarVisible = true; } } hpBar.value = Hp; hpBarCg.alpha = hpBarVisible ? 1f : 0f; if (!_inAir) { if (Math.Abs(transform.rotation.eulerAngles.z) > 0.01) { transform.Rotate(Vector3.forward, 20f); } } if (!_inAir && (Input.GetButtonDown("Jump") || InputUtility.CheckTouchPhase(TouchPhase.Began))) { rigid.velocity = Vector2.up * jumpSpeed; transform.Rotate(Vector3.forward, -20f); _sound.Play(); } if (rigid.velocity.y < 0) { rigid.velocity += Physics2D.gravity.y * (fallMultiplier - 1) * Time.deltaTime * Vector2.up; } else if (rigid.velocity.y > 0 && (!Input.GetButton("Jump") && Input.touchCount == 0)) { rigid.velocity += Physics2D.gravity.y * (lowJumpMultiplier - 1) * Time.deltaTime * Vector2.up; } scoreText.text = $"{_score:000000}"; } }