void Ani() { if (Time.timeScale == 0) { return; } animator.speed = GameManager.SpeedUp ? 1.25f : 1; animator.SetBool("Damage", damage < damagetime - 0.25f ? false : true); if (damage <= 0) { spriterenderer.color = new Color(spriterenderer.color.r, spriterenderer.color.g, spriterenderer.color.b, 1); } else { spriterenderer.color = new Color(spriterenderer.color.r, spriterenderer.color.g, spriterenderer.color.b, (int)(damage * 10) % 2 == 0 ? 1 : 0); } if (Input.GetAxisRaw("Horizontal") == 0 && !stop) { RaycastHit2D wallcheck = Physics2D.BoxCast(transform.position + new Vector3(0.2f, 0, 0) * (Input.GetAxisRaw("Horizontal Trigger") < 0 ? -1 : Input.GetAxisRaw("Horizontal Trigger") > 0 ? 1 : 0), new Vector2(boxCollider2D.size.x * 0.8f, boxCollider2D.size.y * 0.5f), 0, Vector2.zero, 0, 1 << LayerMask.NameToLayer("Background")); animator.SetBool("Run", Input.GetAxisRaw("Horizontal Trigger") == 0 || Mathf.Abs(rigid.velocity.x) < 1f || wallcheck ? false : true); } else if (Input.GetAxisRaw("Horizontal Trigger") == 0 && !stop) { RaycastHit2D wallcheck = Physics2D.BoxCast(transform.position + new Vector3(0.2f, 0, 0) * (Input.GetAxisRaw("Horizontal") < 0 ? -1 : Input.GetAxisRaw("Horizontal") > 0 ? 1 : 0), new Vector2(boxCollider2D.size.x * 0.8f, boxCollider2D.size.y * 0.5f), 0, Vector2.zero, 0, 1 << LayerMask.NameToLayer("Background")); animator.SetBool("Run", Input.GetAxisRaw("Horizontal") == 0 || Mathf.Abs(rigid.velocity.x) < 1f || wallcheck ? false : true); } else { animator.SetBool("Run", false); } if (Input.GetAxisRaw("Horizontal") == 0 || Input.GetAxisRaw("Horizontal Trigger") == 0 && !stop) { animator.SetBool("Turn", (Input.GetAxisRaw("Horizontal Trigger") < 0 && !spriterenderer.flipX) || (Input.GetAxisRaw("Horizontal Trigger") > 0 && spriterenderer.flipX) ? true : false); animator.SetBool("Turn", (Input.GetAxisRaw("Horizontal") < 0 && !spriterenderer.flipX) || (Input.GetAxisRaw("Horizontal") > 0 && spriterenderer.flipX) ? true : false); } if (!animator.GetBool("Damage") && !animator.GetBool("UseItem") && !stop && !animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Roll")) { spriterenderer.flipX = Input.GetAxisRaw("Horizontal") < 0 ? true : (Input.GetAxisRaw("Horizontal") > 0 ? false : spriterenderer.flipX); spriterenderer.flipX = Input.GetAxisRaw("Horizontal Trigger") < 0 ? true : (Input.GetAxisRaw("Horizontal Trigger") > 0 ? false : spriterenderer.flipX); } //animator.SetBool("Jump", rigid.velocity.y <= 0 ? !isground : !isground); animator.SetBool("Jump", !isground); animator.SetFloat("VelocityY", rigid.velocity.y); if (animator.GetBool("Crouch") || animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Roll")) { upground = Physics2D.BoxCast(new Vector2(transform.position.x, transform.position.y + 0.1f), new Vector2(boxCollider2D.size.x * 0.5f, boxCollider2D.size.y), 0, Vector2.zero, 0, 1 << LayerMask.NameToLayer("Background")); } if (Input.GetAxisRaw("Vertical") >= -0.75f && !stop) { animator.SetBool("Crouch", Input.GetAxisRaw("Vertical Trigger") < 0 ? true : upground && rigid.velocity.y == 0); } else if (!stop) { animator.SetBool("Crouch", Input.GetAxisRaw("Vertical") < -0.75f ? true : upground && rigid.velocity.y == 0); } animator.SetBool("Attack0", attack0); animator.SetBool("Attack1", attack1); animator.SetBool("Attack2", attack2); animator.SetBool("Arrow", arrow); animator.SetBool("Roll", roll); animator.SetBool("UseItem", useitem); animator.SetBool("IsGround", isground); if (animator.GetCurrentAnimatorStateInfo(0).IsName("Player_UseItem")) { if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime == 0) { healcheck = false; } else if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime > 0.35f && !healcheck) { EffectManager.Play_Energy(transform.position, spriterenderer.flipX); SoundManager.HealSE(true); healcheck = true; } else if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1) { if (useitem) { GameManager.Use_Item(); useitem = false; } } } if (animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Run_Do")) { arrow = false; if ((animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 < Time.deltaTime) || (animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 > 0.5f && animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 < 0.5f + Time.deltaTime) || (animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 > 1 - Time.deltaTime)) { SoundManager.StepSE(true); } } if (animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Roll")) { arrow = false; attack0 = false; attack1 = false; attack2 = false; roll = false; useitem = false; if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1) { rigid.velocity = Vector2.zero; } } if (animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Land_Attack")) { arrow = false; if (attack0 && animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 >= 0.9f) { attack0 = false; attack1 = false; attack2 = false; SoundManager.AttackSE(true); SoundManager.YapSE(true, 2); } } if (attack0 && animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Attack0")) { arrow = false; if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 >= 0.9f) { attack0 = false; SoundManager.AttackSE(true); SoundManager.YapSE(true, 3); } } if (attack1 && animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Attack1")) { arrow = false; if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 >= 0.9f) { attack0 = false; attack1 = false; SoundManager.AttackSE(true); SoundManager.YapSE(true, 3); } } if (animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Attack2")) { arrow = false; if (attack2 && animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 >= 0.9f) { attack0 = false; attack1 = false; attack2 = false; SoundManager.AttackSE(true); SoundManager.YapSE(true, 2); } } if (animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Arrow_Land") || animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Arrow_Air") || animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Arrow_Crouch")) { if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 >= 0.75f && animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 < 0.9f) { if (emp == null) { if (animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Arrow_Crouch")) { emp = Instantiate(Arrow_prefab, transform.position - new Vector3(0, 0.1f, 0), Quaternion.identity); } else { emp = Instantiate(Arrow_prefab, transform.position + new Vector3(0, 0.1f, 0), Quaternion.identity); } emp.transform.localScale = new Vector3(spriterenderer.flipX ? -1 : +1, 1, 1); emp.GetComponent <Rigidbody2D>().AddForce(new Vector2(spriterenderer.flipX ? -10 : +10, 0), ForceMode2D.Impulse); SoundManager.ArrowSE(true); } } else if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime % 1 >= 0.9f) { arrow = false; emp = null; } } if (animator.GetCurrentAnimatorStateInfo(0).IsName("Player_Death")) { rigid.constraints = RigidbodyConstraints2D.FreezeAll; if (animator.GetCurrentAnimatorStateInfo(0).normalizedTime >= 1) { GameManager.GameOver_UI_static.SetActive(true); gameObject.SetActive(false); } } }