Why my ray doesn't hit the collider?

It’s a 2D very simple clicker game that adds items to a collection and when there’s more than 4 items in the collection it’ll perform an action (displaying a Game Object with a sprite attached to it). So the game object get’s created (initialized) properly, it’s displayed and gives the user an information on the outcome of his/her selection. But… I somehow aren’t able to destory this object by clicking on a specific region in this GameObject (sprite) and restarting the game. Here’s the code with comments, please help.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class CamerScript : MonoBehaviour {

public List<string> stomach;
RaycastHit hit;
public Rigidbody shitRB;
public bool stomachFull = false;
private bool GoOn = true;

private void Start () {
    stomach = new List<string>();
}

private void Update()
{
    if (GoOn)
    {
        if (stomachFull == false)
        {            
            if (stomach.Count >= 4) stomachFull = true;
            if (Input.GetMouseButtonDown(0))
            {
                click();
            }
        }
        if (stomachFull)
        {
            // This does get accessed and executed.. the object get displayed
            Debug.Log("stomach more than 4  " + stomach.Count);
            GoOn = false;
            Rigidbody shitClone = (Rigidbody)Instantiate(shitRB, transform.position, transform.rotation); 
        }
    }

    if(GoOn == false)
     //   THE PROBLEM IS BELOW!!!!!
    {
        if (Input.GetMouseButtonDown(0))
        {
            Debug.Log("Clicked mouse button 0");      
            // The above DOES get displayed in the console
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit, 100f))  

            {
                // THIS --IF-- is never executed.
                // so there has to be something wrong with the 'if' above
                Debug.Log("Clicked on the shit cross button");
                stomach.Clear();
                stomachFull = false;
                GoOn = true;
            }
        }
    }
}

void click()
{
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(ray, out hit, 100f))
    {
        stomach.Add(hit.collider.name);
        // This DOES work, the items are being addaed to the array (List)
    }
}

Generally I cannot understand why my ray does not hit the colider and thus my code isn’t executed (the GO doesn’t get destroyed).

Any help appreciated.

if ( Input.GetMouseButtonDown(0))
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray, out hit))
{
if(hit.transform.tag == “PIG”)//ask for a collision tag and see if you get the dubug line
{
Debug.Log(“You hitted the PIG”);
}
}
}

Is GoOn ever false?