public void ExtendLine() { GameObject temp; Vector2 pos = new Vector2(gameObject.transform.position.x, gameObject.transform.position.y); float prevPieceX = Vector3.Distance(segments [0].transform.localPosition, segments [1].transform.localPosition); temp = Instantiate(lineSegmentPrefab, pos, Quaternion.identity); temp.GetComponent <LineRenderer> ().sortingLayerName = "Clone Partition"; SegmentCollider segmentVal = temp.GetComponent <SegmentCollider> (); SegmentCollider prevSegment = segments [segments.Count - 1].GetComponent <SegmentCollider> (); temp.SetActive(true); temp.name = "segment_" + (segments.Count - 1); temp.tag = "Number Line Segment"; segmentVal.SetValue((prevSegment.GetNumerator() + 1), prevSegment.GetDenominator()); temp.transform.SetParent(gameObject.transform); // Vector2 locPos = new Vector2(numberLineBounds.center.x - (numberLineBounds.extents.x - (numberLineBounds.extents.x/partitionCount)) + prevPieceX, numberLineBounds.center.y); Vector2 locPos = new Vector2(segments [segments.Count - 1].transform.localPosition.x + prevPieceX, segments [segments.Count - 1].transform.localPosition.y); temp.transform.localPosition = locPos; lineRenderer.SetPosition(1, locPos); segments.Add(temp); }
private void Partition(int partitionCount) { PurgeSegments(); GetSegments(); GameObject temp; Vector2 pos; float prevPieceX = 0f; for (int x = 0; x < partitionCount; x++) { pos = new Vector2(gameObject.transform.position.x, gameObject.transform.position.y); temp = Instantiate(lineSegmentPrefab, pos, Quaternion.identity); temp.GetComponent <LineRenderer> ().sortingLayerName = "Clone Partition"; SegmentCollider segmentVal = temp.GetComponent <SegmentCollider> (); temp.SetActive(true); temp.name = "segment_" + x; temp.tag = "Number Line Segment"; segmentVal.SetValue(x, partitionCount - 1); temp.transform.SetParent(gameObject.transform); Bounds numberLineBounds = gameObject.GetComponent <LineRenderer> ().bounds; // Vector2 locPos = new Vector2(numberLineBounds.center.x - (numberLineBounds.extents.x - (numberLineBounds.extents.x/partitionCount)) + prevPieceX, numberLineBounds.center.y); double currPos = this.gameObject.transform.position.x + prevPieceX; // Vector2 locPos = new Vector2(Mathf.Round(currPos*10f)/10f, numberLineBounds.center.y); Vector2 locPos = new Vector2((float)System.Math.Round(currPos, 2), numberLineBounds.center.y); temp.transform.position = locPos; prevPieceX += (this.lineLength / (partitionCount - 1)); segments.Add(temp); } }