public bool IsFindCeiling() { HangTask.mCeilingCoolTimeT += Time.deltaTime; if (!HangTask.IsCeilingNearOf()) { } else if (HangTask.FindCeiling) { HangTask.IsFollowEndToCeiling = HangTask.IsCeilingNear(); return(true); } if ((FindCeilingT += Time.deltaTime) < HangTask.CeilingCoolTime) { return(false); } // 벽에 매달리지 않는다. // 벽을 검색 하지 않는 타이머를 설정한 뒤 빠져나온다. if (bUseTimer && !ARandom.Get(HangTask.CeilingPercentage)) { FindCeilingT = 0; return(false); } else { var Tr = Detect.GetHitTrOrNull(transform.position, Vector2.up, HangTask.mCeilingDetectRange, GM.SoildGroundLayer); if (Tr) { HangTask.MyCeiling = Tr; // 발견한 천장이 이미 누가 매달려 있는 벽이라면? if (FlowerBat_Task_Hang.HangWalls.Contains(HangTask.MyCeiling.gameObject)) { bUseTimer = false; return(false); } //찾은 천장을 목적지로 설정. HangTask.mCeilingPos = Tr.position; //천장을 찾았다. HangTask.FindCeiling = true; bUseTimer = true; } else { bUseTimer = false; return(false); } FlowerBat_Task_Hang.HangWalls.Add(Tr.gameObject); HangTask.IsFollowEndToCeiling = HangTask.IsCeilingNear(); return(true); } }