/// <summary> /// 把传入的海岸线和当前的相连起来 /// </summary> /// <returns><c>true</c>, if water shore was joined, <c>false</c> otherwise.</returns> /// <param name="waterShore">Water shore.</param> public bool JoinWaterShore(WaterShore waterShore) { if (mWaterShoreSegmentList.Count == 0) { Debug.LogError("Water shore with no segment"); return(false); } if (waterShore.mWaterShoreSegmentList.Count == 0) { Debug.LogError("Input Water shore with no segment"); return(false); } bool needExchange = false; if (mWaterShoreSegmentList [0].CanJoinAtFront(waterShore.mWaterShoreSegmentList [waterShore.mWaterShoreSegmentList.Count - 1], out needExchange)) { if (!needExchange) { JoinWaterShoreAtFront(waterShore); return(true); } } if (mWaterShoreSegmentList [0].CanJoinAtFront(waterShore.mWaterShoreSegmentList [0], out needExchange)) { if (needExchange) { waterShore.RevertWaterLines(); JoinWaterShoreAtFront(waterShore); return(true); } } if (mWaterShoreSegmentList [mWaterShoreSegmentList.Count - 1].CanJoinAtEnd(waterShore.mWaterShoreSegmentList [0], out needExchange)) { if (!needExchange) { JoinWaterShoreAtEnd(waterShore); return(true); } } if (mWaterShoreSegmentList [mWaterShoreSegmentList.Count - 1].CanJoinAtEnd(waterShore.mWaterShoreSegmentList [waterShore.mWaterShoreSegmentList.Count - 1], out needExchange)) { if (needExchange) { waterShore.RevertWaterLines(); JoinWaterShoreAtEnd(waterShore); return(true); } } return(false); }