IEnumerator BrownBallEffect() { if (br_BrownBallEffect_sw) { yield break; } br_BrownBallEffect_sw = true; Ball_Moter hitPlayer = FindObjectOfType <Ball_Moter>(); float speed = 2f; transform.localScale = new Vector3(0, 0, 0); br_tempPlayerSpeed = hitPlayer.moveSpeed; hitPlayer.moveSpeed -= speed; myColider.radius = 0f; yield return(new WaitForSeconds(0.005f)); Debug.Log("Speed Down"); yield return(new WaitForSeconds(3.5f)); hitPlayer.moveSpeed = br_tempPlayerSpeed; Debug.Log("Speed return"); yield return(new WaitForSeconds(5f)); Destroy(this.gameObject); }
private void OnTriggerExit2D(Collider2D hit) { Ball hitBall = FindObjectOfType <Ball>(); Ball_Moter hitPlayer = FindObjectOfType <Ball_Moter>(); if (!b_blueBallSpell_sw) { return; } float speed = 3f; if (b_resetToSpeeds) { hitPlayer.moveSpeed = b_tempPlayerSpeed; hitPlayer.onBlueEffect = false; if (hit == hitBall) { hitBall.moveSpeed = b_tempBallSpeed; hitBall.onBlueEffect = false; } return; } if (hitPlayer.onBlueEffect) { hitPlayer.moveSpeed = b_tempPlayerSpeed; hitPlayer.onBlueEffect = false; } if (hit == hitBall && hitBall.onBlueEffect) { hitBall.moveSpeed = b_tempBallSpeed; hitBall.onBlueEffect = false; } if (hitPlayer.moveSpeed == 0) { Debug.Log("Error: Player's moveSpeed is zero."); } }
void OnTriggerEnter2D(Collider2D hit) { if (!inViewport) { return; } //(공용) * 파란공이 효과가 터지면 else 쪽으로 넘어감. if (!b_blueBallSpell_sw) { Ball hitBall = FindObjectOfType <Ball>(); if (hit.tag == "Blue" && hitBall.b_startBludEffect) { return; } if (hit.tag == "Player") { HitPlayer(); } bounceCount--; if (bounceCount <= 0) { NoCount(); } if (hit.tag == "Wall") { SetDestination(); } else { direction = new Vector3(0, 0, 0); direction = transform.position - hit.transform.position; direction.Normalize(); } } //(파란공 전용) 효과가 터졌을시 else { Ball hitBall = FindObjectOfType <Ball>(); Ball_Moter hitPlayer = FindObjectOfType <Ball_Moter>(); float speed = 0.3f; if (b_resetToSpeeds) { hitPlayer.moveSpeed = b_tempPlayerSpeed; if (hit == hitBall) { hitBall.moveSpeed = b_tempBallSpeed; } return; } if (!hitPlayer.onBlueEffect) { b_tempPlayerSpeed = hitPlayer.moveSpeed; hitPlayer.onBlueEffect = true; } if (hit == hitBall && !hitBall.onBlueEffect) { b_tempBallSpeed = hitBall.moveSpeed; hitBall.onBlueEffect = true; } switch (hit.tag) { case "Red": case "Blue": case "Brown": if (hit == hitBall) { hitBall.moveSpeed += speed; } break; case "Player": hitPlayer.moveSpeed += speed; break; default: return; } } }