/// <summary>
        ///     This sets up environment and agents based on parameters given in inspector, or otherwise
        ///       # these can be replaced by restart Env so long Initialise agents is accounted for
        /// </summary>
        public void InitDebugSetup()
        {
            var(tileLogicBuilder, gameParams) = GetTileLogicBuilderAndGameParamsDebug();
            var tileLogic = GetTileLogicDebug(tileLogicBuilder);

            CreateEnv.PopulateEnv(tileLogic, _parentObjects, mapScale, materials);
            InitialiseAgents(gameParams);
        }
        /// <summary>
        ///     Resets environment and agent positions with given parameters, in the inspector or otherwise
        /// </summary>
        private void DebugRestart()
        {
            var(tileLogicBuilder, gameParams) = GetTileLogicBuilderAndGameParamsDebug();
            ClearChildrenOf(envParent);
            var tileLogic = GetTileLogicDebug(tileLogicBuilder);

            CreateEnv.PopulateEnv(tileLogic, _parentObjects, mapScale, materials);
            SetAgentPosition(gameParams);
        }
        /// <summary>
        ///     Set up environment with parameters given by the specified curriculum
        /// </summary>
        private void InitCurrSetup()
        {
            Random rand            = new Random();
            var    curriculumParam = randomiseParameters ? rand.Next(1, 11) :
                                     Academy.Instance.EnvironmentParameters.GetWithDefault(curriculum.ToString(), 1.0f);

            var(tileLogicBuilder, gameParams) = GetTileLogicBuilderAndGameParamsFromCurr(curriculumParam);
            var(tileLogic, gameParamMapScale) = GetTileLogicAndGameParamMapScaleCurr(tileLogicBuilder, gameParams);
            CreateEnv.PopulateEnv(tileLogic, _parentObjects, gameParamMapScale, materials);
            InitialiseAgents(gameParams);
        }
        /// <summary>
        ///     Resets the environment and agent positions with parameters from curriculum
        /// </summary>
        private void CurriculumRestart()
        {
            Random rand            = new Random();
            var    curriculumParam = randomiseParameters ? rand.Next(1, 11) :
                                     Academy.Instance.EnvironmentParameters.GetWithDefault(curriculum.ToString(), 1.0f);

            var(tileLogicBuilder, gameParams) = GetTileLogicBuilderAndGameParamsFromCurr(curriculumParam);
            ClearChildrenOf(envParent);
            var(tileLogic, gameParamMapScale) = GetTileLogicAndGameParamMapScaleCurr(tileLogicBuilder, gameParams);
            CreateEnv.PopulateEnv(tileLogic, _parentObjects, gameParamMapScale, materials);
            SetAgentPosition(gameParams);
        }