void Controls() { // Move left or right h = Input.GetAxis(axis); if (!isHitted) { rb.velocity = new Vector2(h * Time.deltaTime * speed, rb.velocity.y); } // Jump if (Input.GetButtonDown(jumpKey)) { if (isGrounded) { isGrounded = false; rb.velocity = new Vector2(rb.velocity.x, Time.deltaTime * jumpHeight); } } // Punch if (Input.GetButtonDown(punchKey) && (Time.time - lastPunch > .5 || lastPunch == 0)) { lastPunch = Time.time; lastPunchAnim = Time.time; idle.SetActive(false); punchScript.Punch(); } // Special if (Input.GetButtonDown(specialKey) && (Time.time - lastSpecial > 5 || lastSpecial == 0)) { lastSpecial = Time.time; audioSource.PlayOneShot(specialSound); float specialX = transform.InverseTransformDirection(Vector3.left).x; GameObject hadouken = Instantiate(Resources.Load("Prefabs/Specials/Hadouken"), new Vector3(transform.position.x + specialX * 2, transform.position.y + 18f, -1), transform.rotation) as GameObject; hadouken.GetComponent <SpecialScript> ().player = transform.gameObject; } // Guard if (transform.InverseTransformDirection(Vector3.left).x *h > 0) { isGuarding = true; } else { isGuarding = false; } // Reset after punch if (Time.time - lastPunchAnim > 0.2f) { lastPunchAnim = 0; idle.SetActive(true); punchScript.StopPunch(); } // Reset after hitted if (Time.time - lastHit > 0.5f) { lastHit = 0; isHitted = false; } }