private bool UpdateRoundPen() { if (m_currentPenEdges.Count == 0) { return(false); } bool updated = false; for (int i = 0; i < m_currentPenEdges.Count; i++) { PenEdge penEdge = m_currentPenEdges[i]; IntVector2 penPosition = WorldPositionToBoardPosition(penEdge.transform.position); if (!penEdge.hasCork) { Circle from = new Circle(); from.center = m_penLastPositions[penEdge]; from.radius = penEdge.width; Circle to = new Circle(); to.center = penPosition; to.radius = from.radius; DrawCircleLine(from, to, penEdge.color, 3); updated = true; } m_penLastPositions[penEdge] = penPosition; } return(updated); }
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)); } } }