} // protected bool resetGlobal_NavigationCells()

    public void LinkTriCollectorToAllBase(ref CBaseTowerCollector managerBaseTower_ref,
                                          ref CBaseCoreCollector managerBaseCore_ref,
                                          ref CBaseCoreSubCollector managerBaseCoreSub_ref,
                                          ref CBaseStartCollector managerBaseStart_ref,
                                          ref CBaseBlockCollector managerBaseBlock_ref,
                                          CTriCollector triCollector)
    {
        managerBaseTower_ref.setTrisallToBase(triCollector.getTris());
        managerBaseCore_ref.setTrisallToBase(triCollector.getTris());
        managerBaseCoreSub_ref.setTrisallToBase(triCollector.getTris());
        managerBaseStart_ref.setTrisallToBase(triCollector.getTris());
        managerBaseBlock_ref.setTrisallToBase(triCollector.getTris());
    }
    protected bool Load_BaseStart_Binary(ref CBaseStartCollector managerBaseStart_ref)
    {
        foreach (BaseInfo core in m_stageMap.StartbaseList)
        {
            CBASE__ baseCurr = new CBASE__();

            baseCurr._v3PositionCenter = core.CenterPos;
            baseCurr.setIdxType(core.Type);
            baseCurr._listIdxTris   = core.CellIndex;
            baseCurr._listv3Pnts    = core.CoreTriPnt;
            baseCurr._listv3PntsSrc = core.CoreTriPntSrc;

            if (baseCurr._listv3PntsSrc.Count > 2)
            {
                managerBaseStart_ref.m_listBase__.Add(baseCurr);
            }
        }

        managerBaseStart_ref._SetDrawDebug_Base__All();

        return(false);
    }
    } // protected void loadingProcess_Binary

    //@ Initialize managements.
    public void Initialize(processResource resources)
    {
        if (null == resources)
        {
            Debug.Log("ERROR(critical) all gameobjectProcessResource is null.");
            return;
        }

        _modeTool = true;

        //@ re-link resource all.
        m_datanavimeshs         = resources._navimeshResource;
        m_unitFactory_          = resources._unitfactory;
        m_processInput          = resources._processInput;
        m_curvePathUnit_src     = resources._curvePathUnit_src;
        m_curvePathLineDraw_src = resources._curvePathLineDraw_src;
        m_drawText3D_src        = resources._drawText3D_src;
        m_unitFlying_src        = resources._unitFlying_src;
        m_unitWalking_src       = resources._unitWalking_src;
        m_selectBox_src         = resources._selectBox_src;
        m_combo_src             = resources._combo_src;

        _IdxKeyNavi = m_datanavimeshs.StartNaviMesh;

        m_speedmove_unitwalking = m_processInput.velocity_unitwalking;
        m_speedmove_unitflying  = m_processInput.velocity_unitflying;

        //@ Construct
        m_baseTowerCollector   = new CBaseTowerCollector();
        m_baseCoreCollector    = new CBaseCoreCollector();
        m_baseCoresubCollector = new CBaseCoreSubCollector();
        m_baseStartCollector   = new CBaseStartCollector();
        m_baseBlockCollector   = new CBaseBlockCollector();

        m_toolmoduleNavimesh  = new CToolModuleNavimesh();
        m_intervalUnitWalking = new IntervalUnitWalking();

        //@ Initialize
        m_processInput.InitProcessInput(this);
        m_toolmoduleNavimesh.InitNaviMeshTool();
        m_baseTowerCollector.InitBaseCollector();
        m_baseCoreCollector.InitBaseCollector();
        m_baseCoresubCollector.InitBaseCollector();
        m_baseStartCollector.InitBaseCollector();
        m_baseBlockCollector.InitBaseBlockCollector(m_processInput._blockbasetypes.Length);

        //@ Initialize all managers
        bool bResult = false;

        bResult = resetGlobal(_IdxKeyNavi, m_processInput._loadfrom_geometry);
        if (false == bResult)
        {
            Debug.Log("ERROR. resetGlobal().//");
        }

        //@ Application execute mode, which is naviscene or gamescene
        processCycle.APPLICATION_MODE_NAVITOOL = true;

        GameContext gamecontext = GameContext.GetInstance;

        gamecontext.ShowDebugInfo = false;
    } // void Initialize