So I thought It would be a good idea to extend UIButtonKeys with a context menu command to arrange the selectOnUp / selectOnDown automagically by looking at the componenets Y value. Strangly my attempt does not work.
If the component's values are set, they are often out of order.
[ContextMenu("ArrangeVertical")]
public void ArrangeVertical()
{
var p = this.FindInParent<UIPanel>();
var ts = p.GetComponentsInChildren<UIButtonKeys>(true);
var ordered = ts.OrderByDescending(o => o.transform.position.y).ToArray();
Debug.Log(ordered.Length);
for (int i = 0; i < ordered.Length; i++)
{
Debug.Log(i);
var comp = ordered[i];
if (i == 0)
{
comp.selectOnUp = ordered[ordered.Length - 1];
comp.selectOnDown = ordered[i + 1];
}
else if (i + 1 == ordered.Length)
{
comp.selectOnUp = ordered[i - 1];
comp.selectOnDown = ordered[0];
}
else
{
comp.selectOnUp = ordered[i - 1];
comp.selectOnDown = ordered[i + 1];
}
}
}
Not really a NGUI problem per-se, but has anyone else experienced strange editor behavior ?