using UnityEngine; using UnityEngine.Tilemaps; using UnityEngine.InputSystem; public class TileClickBreaker : MonoBehaviour { [SerializeField] private Tilemap tilemap; void Update() { if (Mouse.current == null) { return; } if (Mouse.current.leftButton.wasPressedThisFrame) { Vector2 mousePos = Mouse.current.position.ReadValue(); // 2D´Â Ä«¸Þ¶ó ÁÂÇ¥ º¯È¯ ¹æ½ÄÀÌ ´Ù¸¨´Ï´Ù Vector2 worldPos = Camera.main.ScreenToWorldPoint(mousePos); // 2D Àü¿ë ·¹ÀÌij½ºÆ® »ç¿ë RaycastHit2D hit = Physics2D.Raycast(worldPos, Vector2.zero); if (hit.collider != null) { Destroy(hit.transform.gameObject); } } } private void BreakTileAtMousePosition() { // ¸¶¿ì½º°¡ ¿¬°áµÇ¾î ÀÖ´ÂÁö È®ÀÎ if (Mouse.current == null) { return; } // »õ·Î¿î ¹æ½ÄÀÇ ¸¶¿ì½º À§Ä¡ °¡Á®¿À±â Vector3 mousePos = Mouse.current.position.ReadValue(); Vector3 mouseWorldPos = Camera.main.ScreenToWorldPoint(mousePos); Vector3Int cellPosition = tilemap.WorldToCell(mouseWorldPos); if (tilemap.HasTile(cellPosition)) { tilemap.SetTile(cellPosition, null); } } }