public void SetBehaviour(CritterInteraction interaction)
    {
        ReturnToNormalState();
        switch (interaction.inducedState)
        {
        case State.Interacting:
            Debug.Log("Setting INTERACT Behaviour");
            if (interaction.behaviour != null)
            {
                critter.interactBehaviour = UpdateBehaviourComponent(interaction.behaviour);
            }
            else
            {
                critter.interactBehaviour = UpdateBehaviourComponent(critter.data.defaultInteractBehaviour);
            }
            break;

        case State.Eating:
            Debug.Log("Setting EATING Behaviour");
            if (interaction.behaviour != null)
            {
                critter.eatingBehaviour = UpdateBehaviourComponent(interaction.behaviour);
            }
            else
            {
                critter.eatingBehaviour = UpdateBehaviourComponent(critter.data.defaultEatingBehaviour);
            }
            break;

        case State.Sleep:
            if (interaction.behaviour != null)
            {
                critter.sleepBehaviour = UpdateBehaviourComponent(interaction.behaviour);
            }
            else
            {
                critter.sleepBehaviour = UpdateBehaviourComponent(critter.data.defaultSleepBehaviour);
            }
            break;

        case State.Threatened:
            Debug.Log("Setting THREATENED Behaviour");
            if (interaction.behaviour != null)
            {
                critter.threatenedBehaviour = UpdateBehaviourComponent(interaction.behaviour);
            }
            else
            {
                critter.threatenedBehaviour = UpdateBehaviourComponent(critter.data.defaultThreatenedBehaviour);
            }
            break;
        }
        SetState(interaction.inducedState);
    }
    public void AddNewInteraction(Interactables tag, State state, CritterBehaviour behaviour = null)
    {
        foreach (CritterInteraction interaction in critter.critterInteractions)
        {
            if (interaction.interactableTag == tag)
            {
                if (interaction.inducedState == state)
                {
                    return;
                }
                else
                {
                    critter.critterInteractions.Remove(interaction);
                    break;
                }
            }
        }
        CritterInteraction newInteraction = new CritterInteraction();

        newInteraction.interactableTag = tag;
        newInteraction.inducedState    = state;
        newInteraction.behaviour       = behaviour;
        critter.critterInteractions.Add(newInteraction);
    }