Exemplo 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);
    }
Exemplo n.º 2
0
    public void Tick()
    {
        var currentSegment = position.CurrentSegment;

        if (currentSegment == null)
        {
            return;
        }
        ClosestCollider = currentSegment.GetClosestCollider(PlayerInput.Instance.MouseRayHitPoint.z);
    }
Exemplo n.º 3
0
    public void AddSegment(Segment segment)
    {
        segments.Add(segment);
        SegmentCollider segmentCol = Instantiate(segmentPrefab, Vector3.zero, Quaternion.identity, transform);

        segmentToCol.Add(segment, segmentCol);
        if (!segmentCols.Contains(segmentCol))
        {
            segmentCols.Add(segmentCol);
        }
        segmentCol.Init(segment, self);
    }
Exemplo n.º 4
0
 //[InspectorButton("AddCollider")]
 //public bool addCollider;
 void AddCollider()
 {
     for (int i = 0; i < segments.Count; i++)
     {
         if (!segmentToCol.ContainsKey(segments[i]))
         {
             SegmentCollider segmentObj = Instantiate(segmentPrefab, Vector3.zero, Quaternion.identity, transform);
             if (!segmentCols.Contains(segmentObj))
             {
                 segmentCols.Add(segmentObj);
             }
             segmentObj.Init(segments[i], self);
             segmentToCol.Add(segments[i], segmentObj);
         }
     }
 }
Exemplo n.º 5
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);
        }
    }
Exemplo n.º 6
0
 public void Activate(SegmentCollider parentCollider)
 {
     isActivated         = true;
     this.parentCollider = parentCollider;
     transform.SetParent(parentCollider.transform);
 }