Example #1
0
    //@ Process // Activate or Unactivate
    public void RegisterOrUnregisterCurvePath_spline(CCurvePathUnit flypathPoint)
    {
        if (null == flypathPoint)
        {
            return;
        }

        if (m_listCurvepathunit.Count > 0)
        {
            int iIdxFind = findCurvePoint(flypathPoint);

            if (-1 < iIdxFind)
            {
                flypathPoint.setUnselectFlyPathUnit();
                DeleteCurvePath(flypathPoint);
                return;
            }
            else
            {
                if (true == flypathPoint.getSelect())
                {
                    flypathPoint.setUnselectFlyPathUnit();
                }
                else
                {
                    int iSeqpath = m_listCurvepathunit.Count;
                    flypathPoint.setSelectFlyPathUnit(iSeqpath);
                }
            }
        }
        else
        {
            int iSeqpath = m_listCurvepathunit.Count;
            flypathPoint.setSelectFlyPathUnit(iSeqpath);
        }

        m_listCurvepathunit.Add(flypathPoint);
        m_listCurvepathunit.Sort(m_ICompCurvePath);

        SetNewCurvePoint_spline(flypathPoint.getPosUnit());

        return;
    } // public bool SetNewCurvePoint_spline(CCurvePathUnit flypathPoint)
    void DeleteCurvePathUnit(CCurvePathUnit flypathunitDel)
    {
        if (null == flypathunitDel)
        {
            return;
        }

        m_listCurvePathUnit.Remove(flypathunitDel);

        flypathunitDel.setUnselectFlyPathUnit();
        flypathunitDel.Release_curvepathUnit();

        GameObject.Destroy(flypathunitDel.gameObject);

        return;
    }