/// <summary>
        /// Creates all the dependencies for the interaction being created, we should consider
        /// exposing this method in order to allow the creation of circular dependencies, like that
        /// the user will be able to first, create all the ios, conditions, actions and then wire up
        /// all the dependencies without having to care about the order of creation of the ios.
        /// </summary>
        /// <param name="_interDef"> The definition of the interaciton being created </param>
        /// <param name="_interaction"> The interaction in process of creation </param>
        private static void CreateDependenciesForInteraction(S_InteractionDefinition _interDef, GameObject _interaction)
        {
            int numConditions = _interDef.ConditionsAndDependencies.Count;

            for (int i = 0; i < numConditions; i++)
            {
                Gaze_AbstractCondition cond = _interDef.ConditionsAndDependencies[i];
                // We need to make sure that the object is a dependency (a dependency is a condition as well)
                if (cond is Gaze_Dependency)
                {
                    cond.SetupUsingApi(_interaction);
                }
            }
        }
        /// <summary>
        /// Creates all the specified conditions for the interaction being created
        /// </summary>
        /// <param name="_interDef">The interaction definition file</param>
        /// <param name="_interaction"> The interaction in process of creation </param>
        private static void CreateConditionsForInteraction(S_InteractionDefinition _interDef, GameObject _interaction)
        {
            int numConditions = _interDef.ConditionsAndDependencies.Count;

            for (int i = 0; i < numConditions; i++)
            {
                Gaze_AbstractCondition cond = _interDef.ConditionsAndDependencies[i];
                // Create all the conditions letting the dependencies being created in next stages
                if (!(cond is Gaze_Dependency))
                {
                    cond.SetupUsingApi(_interaction);
                }
            }
        }