//@ 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; }