leeyunjeong010422 / MiniGameProject

0 stars 0 forks source link

[Feat] 폭탄 구현 #14

Closed leeyunjeong010422 closed 1 month ago

leeyunjeong010422 commented 1 month ago

폭탄에서 플레이어 방향으로 래이캐스트를 쏘고 레이캐스트가 플레이어에 닿으면 n초 후에 폭발함 폭발할 때 플레이어와 닿으면 플레이어 체력 -1

leeyunjeong010422 commented 1 month ago

아!!!! 이렇게 했더니 플레이어가 점프할 때 레이캐스트에 안 잡혀서 플레이어가 근처에 왔는지 인식을 못하는 경우가 발생,... 다른 방법으로 구현해야 할 거 같음

leeyunjeong010422 commented 1 month ago

OverlapBox() 사용

private void BombOverlapBox()
{
    int playerLayerMask = LayerMask.GetMask("Player");
    //RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.left, 70f, playerLayerMask);
    //Debug.DrawRay(transform.position, Vector2.left * 70f, Color.red);

    Collider2D hit = Physics2D.OverlapBox(transform.position, findSize, 0, playerLayerMask);

    if (hit != null && hit.CompareTag("Player"))
    {
        PlayerController playerController = hit.GetComponent<PlayerController>();

        if (playerController != null)
        {
            animator.Play("Bomb");
            StartCoroutine(DeactivateBomb(3));
        }
    }
}

private IEnumerator DeactivateBomb(float delay)
{
    yield return new WaitForSeconds(delay);
    Destroy(gameObject);
}

private void OnDrawGizmosSelected()
{
    Gizmos.color = Color.red;
    Gizmos.DrawWireCube(transform.position, findSize);
}