void JumpInput() { bool isGrounded = IsGrounded(); if (Input.GetButtonDown(jumpInput) == true) { CancelInvoke("JumpBuffer"); Invoke("JumpBuffer", 0.1f); } if (IsInvoking("JumpBuffer") == true && (isGrounded == true || jumpsLeft > 0)) { //TRIGGERED JUMP! CancelInvoke("JumpBuffer"); CancelInvoke("CayoteGrounded"); moveV3.y = jumpStrength; jumpsLeft--; anim.Play("Jumping", 0, 0); isFastFalling = false; sound.SpawnEffect(jumpSFX, 0.1f, Random.Range(3, 5), 0, transform); } if (isGrounded == false && Input.GetAxis(jumpInput) <= 0) { isFastFalling = true; } if (isFastFalling == true) { //I basically just applied gravity multiple times, making faster Gravity(); Gravity(); } }
void Shoot() { if (Vector3.Distance(transform.position, player.position) > minDistance && Vector3.Distance(transform.position, player.position) < maxDistance) { RaycastHit2D hit = Physics2D.Raycast(transform.position, -transform.position - -player.position, Vector3.Distance(transform.position, player.position) - 1f, LayerMask.GetMask("Default")); if (hit.transform == null) { if (anim != null && anim.HasState(0, 0) == true) { anim.Play(0); } if (parentShake != null) { parentShake.MediumShake(); } sound.SpawnEffect(shootSound, 0.2f, 1, 0, transform); transform.parent.localScale += Vector3.one / 3; GameObject g = Instantiate(toShoot, shootPivot.position, transform.rotation * toShoot.transform.rotation); if (transform.position.x < player.position.x) { g.transform.localScale = new Vector3(g.transform.localScale.x, -g.transform.localScale.y, g.transform.localScale.z); } } } }
void LateUpdate() { float distance = Vector2.Distance(transform.position, player.position); if (distance <= range && Time.timeScale == 1) { sound.SpawnEffect(teleportSound); Teleport(); } }