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(); }
protected virtual ILink CreateNewLink(IPort port) { var link = new SegmentLink(); BindNewLinkToPort(port, link); return(link); }
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); } } }