Exemplo n.º 1
0
    void AddSegment()
    {
        otherSegments.Add(Instantiate(segmentReference));

        //This segment can refer to the owner when the owner dies.
        otherSegments[otherSegments.Count - 1].GetComponent <SnakeSegment>().snakeOwner = gameObject;

        //The first segment you cant collide with cause collision problems
        if (segments == 1)
        {
            otherSegments[0].name = "First Segment";
        }

        //Link segments together visually
        SegmentLink sl = Instantiate(segmentLinkReference).GetComponent <SegmentLink>();

        if (otherSegments.Count > 1) //For actual segments
        {
            sl.targetObject  = otherSegments[otherSegments.Count - 1];
            sl.targetObject2 = otherSegments[otherSegments.Count - 2];
        }
        else //For linking a segment to this object.
        {
            sl.targetObject  = otherSegments[otherSegments.Count - 1];
            sl.targetObject2 = gameObject;
        }

        //Force prevPositions to update
        positionRecordTime = 99.0f;
        RecordPositions();
    }
Exemplo n.º 2
0
        protected virtual ILink CreateNewLink(IPort port)
        {
            var link = new SegmentLink();

            BindNewLinkToPort(port, link);
            return(link);
        }
Exemplo n.º 3
0
 private void CreateLinks(ShapeBase shape, Node item)
 {
     foreach (var dest in shape.Links)
     {
         var destItem = (Node)View.FindItem(dest);
         if (destItem != null)
         {
             var link = new SegmentLink();
             link.EndCap = true;
             link.Source = item.Ports.First();
             link.Target = destItem.Ports.First();
             View.Children.Add(link);
         }
     }
 }