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; }