private bool ContainsAllPointsOf(PolygonPen polygonPen, bool useBuffer) { Transform[] points = polygonPen.points; if (useBuffer) { foreach (Transform point in points) { if (!m_registredPolygonPenPointsBuffer.Contains(point)) { return(false); } else { m_registredPolygonPenPointsBuffer.Remove(point); } } } else { foreach (Transform point in points) { if (!m_registredPolygonPenPoints.Contains(point)) { return(false); } } } return(true); }
private bool ContainsAnyPointOf(PolygonPen polygonPen) { Transform[] points = polygonPen.points; foreach (Transform point in points) { if (m_registredPolygonPenPoints.Contains(point)) { return(true); } } return(false); }
private void OnTriggerExit(Collider other) { PolygonPen polygonPen = other.GetComponentInParent <PolygonPen>(); if (polygonPen) { m_registredPolygonPenPoints.Remove(other.transform); if (!ContainsAnyPointOf(polygonPen)) { m_registredPolygonPens.Remove(polygonPen); m_registredPolygonPensLastPosition.Remove(polygonPen); } } else { PenEdge penEdge = other.GetComponent <PenEdge>(); if (penEdge) { m_currentPenEdges.Remove(penEdge); m_penLastPositions.Remove(penEdge); } } }
private void OnTriggerEnter(Collider other) { PolygonPen polygonPen = other.GetComponentInParent <PolygonPen>(); if (polygonPen) { m_registredPolygonPenPoints.Add(other.transform); if (!m_registredPolygonPens.Contains(polygonPen)) { m_registredPolygonPens.Add(polygonPen); m_registredPolygonPensLastPosition.Add(polygonPen, polygonPen.transform.position); } } else { PenEdge penEdge = other.GetComponent <PenEdge>(); if (penEdge) { m_currentPenEdges.Add(penEdge); m_penLastPositions.Add(penEdge, WorldPositionToBoardPosition(penEdge.transform.position)); } } }