public void OnClick(InputAction.CallbackContext context) { if (context.canceled || context.started || !IsBuildMode) { return; } var ray = Camera.main.ScreenPointToRay(CursorPosition); RaycastHit info; if (GridCollider.Raycast(ray, out info, 100f)) { Vector3 hitpoint = info.point; hitpoint.y = 0.0f; hitpoint.x = (int)hitpoint.x + Mathf.Sign(hitpoint.x) * 0.5f; hitpoint.z = (int)hitpoint.z + Mathf.Sign(hitpoint.z) * 0.5f; if (m_GridSystem.IsTileTaken(hitpoint)) { m_GridSystem.RemoveTile(hitpoint); } else { m_GridSystem.AddTile(hitpoint, CurrentTile); } } }