public void FenceCables() { Ray r; RaycastHit hit; int SegIdx; sb = new StringBuilder("Cable", 8); r = new Ray(_model.Find("RayCaster").position, Vector3.down); if (Physics.Raycast(r, out hit)) { if (hit.collider.name.StartsWith("RoadSeg")) { SegIdx = System.Convert.ToInt16(hit.collider.name.Substring(7)); foreach (Transform Cable in LCables) { int idx = LCables.IndexOf(Cable); Vector3 kerbL = Road.Instance.XSecs[SegIdx + 12 + idx * 6].KerbL; Cable.position = transform.TransformPoint(LCablePoses[idx]); float Dist = Vector3.Distance(Cable.position, kerbL); Cable.localScale = new Vector3(1, 1, Dist); Cable.LookAt(kerbL); } foreach (Transform Cable in RCables) { int idx = RCables.IndexOf(Cable); Vector3 kerbR = Road.Instance.XSecs[SegIdx + 12 + idx * 6].KerbR; Cable.position = transform.TransformPoint(RCablePoses[idx]); float Dist = Vector3.Distance(Cable.position, kerbR); Cable.localScale = new Vector3(1, 1, Dist); Cable.LookAt(kerbR); } } else { foreach (Transform Cable in LCables) { Cable.localScale = Vector3.zero; } foreach (Transform Cable in RCables) { Cable.localScale = Vector3.zero; } } } }