public void Init()
    {
        if (growObject == null)
        {
            growObject = gameObject.AddComponent <GrowableObject>();
        }
        if (ladder == null)
        {
            ladder = gameObject.AddComponent <Ladder>();
        }

        ladder.canLadder = false;
        isFinishedGrow   = false;
        currentGrowTime  = 0f;


        originalScale    = new Vector3(transform.localScale.x, transform.localScale.y, transform.localScale.z);
        originalPosition = new Vector3(transform.position.x, transform.position.y, transform.position.z);
        currentPer       = 0f;
    }
    IEnumerator ProcessWater()
    {
        var splashOn = false;

        player.isSkillUse_Water = true;

        yield return(new WaitForSeconds(0.7f));

        AudioManager.Instance.Play_Skill_Water_Set();
        waterEffect_Set.SetActive(true);
        SetRayPosition();
        //yield return new WaitUntil(() => waterEffect_Set.activeSelf == false);

        yield return(new WaitForSeconds(1f));

        AudioManager.Instance.Stop_Skill_Water_Set();

        //WaterSet가 사라진 이후
        if (splashOn == false)
        {
            splashOn = true;
        }

        posHit = Physics2D.Raycast(rayHitPosition, Vector2.down, 50f, groundCheckMask);
        if (posHit)
        {
            Debug.DrawLine(rayHitPosition, posHit.point, Color.cyan, 1f);

            waterEffect_Splash.transform.position =
                new Vector3(waterEffect_Splash.transform.position.x, posHit.point.y, waterEffect_Splash.transform.position.z);

            FlipSplashEffect();
        }
        yield return(YieldInstructionCache.WaitForFixedUpdate);

        waterEffect_Splash.SetActive(true);

        AudioManager.Instance.Play_Skill_Water_Splash();
        yield return(new WaitForSeconds(0.3f));

        //WaterSplash가 적당한 모습일때
        Vector2 pos = startPos.transform.position;

        hits = Physics2D.BoxCastAll(pos, player.waterSize, 0f, player.waterDirection, player.waterDistance, plantLayerMask);

        hit = false;

        foreach (var item in hits)
        {
            GrowableObject growableObject = item.collider.GetComponent <PlantSeed>();

            if (growableObject != null)
            {
                Debug.Log(growableObject.name);
                growableObject.OnWater(); //젖음 판정
                //growableObject.StartGrow(); //자람 시작
            }
            if (item && hit == false)
            {
                hit = true;
            }
        }
        yield return(YieldInstructionCache.WaitForEndOfFrame);



        yield return(new WaitForSeconds(0.3f));

        //WaterSplash가 끝나고

        waterEffect_Splash.SetActive(false);
        //   Debug.Log("End Water");
        player.isSkillUse_Water = false;
        player.WaterCoroutine   = null;
        yield break;
    }