Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
        }
    }