RectTransforms pin4Satellites(SolarOrbitRenderer rend, Mode1Lookup lookup) { if (!rend) { return(new RectTransforms(0)); } var s = rend.GC <SolarOrbit> (); var r = new RectTransforms(s.moons.Length); for (int i = 0; i < r.Length; i++) { var pin = Instantiate(pinPrefab).GC <PinButton> (); var p = data.GetPlanet(s.id); var m = p.GetMoon(s.moons [i].id); pin.SetUp(lookup, s.moons [i], m.scheme, detail.GetPlanet(p).GetMoon(m.id).label); pin.transform.SetParent(pinParent, false); pin.target = s.moons [i].transform; r [i] = pin.GC <RectTransform> (); r [i].localScale = Vector3.zero; s.moons[i].GC <SolarOrbitRenderer>().SetScheme(m.scheme); } return(r); }
void AllocateSlot(ref SolarSlot slot, ref int idx, ref int seek, Mode0Navigator nav, Mode1Lookup lookup, RectTransform pin, SolarOrbitRenderer rend) { var meta = detail.metadata; if (slot == null || seek >= meta.SlotCounts [idx]) { if (slot) { slot.SetUp(); } slot = pinParent.gameObject.AddComponent <SolarSlot> (); idx++; seek = 0; var count = meta.SlotCounts [idx]; slot.buttons = new RectTransform[count]; slot.orbits = new SolarOrbitRenderer[count]; slot.caption = meta.SlotCaptions [idx]; slot.camDistance = meta.SlotDistances [idx]; slot.satelliteButtons = new RectTransforms[count]; nav.slots [idx] = slot; } slot.orbits [seek] = rend; slot.buttons [seek] = pin; slot.satelliteButtons [seek] = pin4Satellites(rend, lookup); pin.SetParent(pinParent, false); seek++; }