// Update is called once per frame void Update() { Vector3 targetPos = Vector3.zero; if (joystick) { JoystickMode(); } else { targetPos = MouseMode(); } if (isFacingRight > 0) { weapon.transform.parent.rotation = Quaternion.FromToRotation(Vector3.right, targetDir.normalized); } else { weapon.transform.parent.localRotation = Quaternion.FromToRotation(targetDir, Vector3.left); } Vector2 bulletPos = weapon.transform.Find("bulletSpawn").position; if (joystick) { Debug.DrawLine(bulletPos, bulletPos + targetDir.normalized * 100, Color.red); } //点击鼠标左键开火 if (Input.GetButtonDown(fire1)) { if (!joystick) { targetDir = (Vector2)targetPos - bulletPos; if (Vector3.Magnitude(targetPos - transform.position) > 10.5f) { weapon.Fire(targetDir); } } else { weapon.Fire(targetDir); } } //点击鼠标右键投掷炸弹 //按住蓄力 if (Input.GetButton(fire2)) { throwBomb.Charge(); } //松开释放 if (Input.GetButtonUp(fire2)) { throwBomb.Throw(targetDir); } //射线检测是否碰到地面,若是则可以跳跃 isGrounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground")); if (Input.GetButtonDown(jump) && isGrounded) { anim.SetTrigger("Jump"); rb.AddForce(new Vector2(0, jumpForce)); isjumping = true; } //跳跃蓄力 if (isjumping) { rb.AddForce(new Vector2(0, jumpForce)); jumpTimer += Time.deltaTime; if (jumpTimer > 0.15f) { isjumping = false; } } if (Input.GetButtonUp(jump)) { isjumping = false; jumpTimer = 0; } //引爆定时炸弹 if (Input.GetButtonUp(detonate)) { if (detonateFunc != null) { detonateFunc(); } } //和控制台交互 if (Input.GetButtonUp(interact)) { Console.Instance.ConsoleInteract(); } }