// Use this for initialization void Start() { if (parent) { TelescopeElement parentElement = parent.getChildElement(parentElementNum); transform.parent = parentElement.transform; if (!keepLocalPositionOnStart) { transform.localPosition = parentElement.getAttachmentLocation(offsetAlongParent); transform.localRotation = parentElement.getAttachmentRotation(offsetAlongParent); } } /* * GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); * sphere.transform.parent = transform; * sphere.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f); * sphere.transform.localPosition = Vector3.zero; */ line = gameObject.AddComponent <LineRenderer>(); line.useWorldSpace = false; line.material = DesignerController.instance.defaultLineMaterial; line.SetWidth(0.1f, 0.1f); List <Vector3> points = new List <Vector3>(); int numNeighbors = 0; if (parentSegment) { points.Add(parentSegment.LastShell.transform.position - transform.position); points.Add(Vector3.zero); numNeighbors++; } foreach (TelescopeSegment seg in childSegments) { points.Add(seg.FirstShell.transform.position - transform.position); points.Add(Vector3.zero); } numNeighbors += childSegments.Count; line.SetVertexCount(points.Count); line.SetPositions(points.ToArray()); // If this bulb is a dead end, make it a sphere. junctureType = (numNeighbors <= 1) ? JunctureType.Sphere : JunctureType.ConvexHull; previousType = JunctureType.None; if (!mFilter) { mFilter = gameObject.AddComponent <MeshFilter>(); } if (!meshRenderer) { meshRenderer = gameObject.AddComponent <MeshRenderer>(); meshRenderer.material = DesignerController.instance.defaultTelescopeMaterial; } }
public void SetParent(TelescopeElement element, int parentElementNum, float attachmentPoint) { if (element == null) { transform.parent = null; return; } parent = element; TelescopeElement parentElement = element.getChildElement(parentElementNum); this.parentElementNum = parentElementNum; this.offsetAlongParent = attachmentPoint; this.transform.parent = parentElement.transform; this.transform.localPosition = parentElement.getAttachmentLocation(attachmentPoint); this.transform.localRotation = parentElement.getAttachmentRotation(attachmentPoint); }