52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
|
|
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<32><44> ī<><EFBFBD> <20><>ǥ <20><>ȯ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٸ<EFBFBD><D9B8>ϴ<EFBFBD>
|
|||
|
|
Vector2 worldPos = Camera.main.ScreenToWorldPoint(mousePos);
|
|||
|
|
|
|||
|
|
// 2D <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>Ʈ <20><><EFBFBD><EFBFBD>
|
|||
|
|
RaycastHit2D hit = Physics2D.Raycast(worldPos, Vector2.zero);
|
|||
|
|
|
|||
|
|
if (hit.collider != null)
|
|||
|
|
{
|
|||
|
|
Destroy(hit.transform.gameObject);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void BreakTileAtMousePosition()
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD>콺<EFBFBD><ECBDBA> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD> <20>ִ<EFBFBD><D6B4><EFBFBD> Ȯ<><C8AE>
|
|||
|
|
if (Mouse.current == null)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>콺 <20><>ġ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|