타일맵

public class BreakableTile : MonoBehaviour

{


    Tilemap tilemap;


    public GameObject breakEffect;


    private void Awake()

    {

        tilemap = GetComponent<Tilemap>();

    }



    public void HandleImpact(Vector3 ImpactPosition)

    {

        Debug.Log(tilemap.WorldToCell(ImpactPosition));

        tilemap.SetTile(tilemap.WorldToCell(ImpactPosition), null);

        Inst a ntiate(breakEffect, tilemap.CellToWorld(tilemap.WorldToCell(ImpactPosition)),Quaternion.identity);


    }

}



 총알 움직임
    private void FixedUpdate()
    {
        Vector2 startPosition = rb.position;
        Vector2 movement = (Vector2)transform.right * speed * Time.fixedDeltaTime;
        Vector2 endPosition = startPosition + movement;

        RaycastHit2D hit = Physics2D.BoxCast(col.bounds.center, col.bounds.size,0f,(Vector2)transform.right, movement.magnitude, mask);

        if (hit.collider != null && hit.collider.CompareTag("Ground"))
        {
            if (hit.collider.TryGetComponent<BreakableTile>(out BreakableTile breakableTile))
            {


                Vector3 hitpoint = hit.point - (hit.normal*0.01f);
             

                breakableTile.HandleImpact(hitpoint);
            }
            Destroy(gameObject);
        }
        else
        {
            rb.MovePosition(endPosition);
        }

}


타일맵 콜라이더 + 컴포짓 콜라이더 ( 리지드바디 static ) 

총알 트리거 + 박스콜라이더 (리지드바디 Kinematic)

인 상태인데

시 발 어째서인지 모를이유로 오른쪽에서 좌측으로, 평지에서 쏘는 총알만 좌표계산을 제대로하지못하고있음

대체왜

하루죙일 좌표값 다른거주면서 해봐도 안되어서 박스캐스트까지 쓰는데도 안됨

미치겠슨

37


37


37