Author Topic: Strange behaviour when Sorting UIButtonKeys  (Read 3273 times)

Quarkism

  • Newbie
  • *
  • Thank You
  • -Given: 0
  • -Receive: 0
  • Posts: 48
    • View Profile
Strange behaviour when Sorting UIButtonKeys
« on: May 29, 2013, 01:20:54 PM »
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.

  1.         [ContextMenu("ArrangeVertical")]
  2.         public void ArrangeVertical()
  3.         {
  4.             var p = this.FindInParent<UIPanel>();
  5.             var ts = p.GetComponentsInChildren<UIButtonKeys>(true);
  6.  
  7.             var ordered = ts.OrderByDescending(o => o.transform.position.y).ToArray();
  8.  
  9.             Debug.Log(ordered.Length);
  10.  
  11.             for (int i = 0; i < ordered.Length; i++)
  12.             {
  13.                 Debug.Log(i);
  14.                 var comp = ordered[i];
  15.  
  16.                 if (i == 0)
  17.                 {
  18.                     comp.selectOnUp = ordered[ordered.Length - 1];
  19.                     comp.selectOnDown = ordered[i + 1];
  20.                 }
  21.                 else if (i + 1 == ordered.Length)
  22.                 {
  23.                     comp.selectOnUp = ordered[i - 1];
  24.                     comp.selectOnDown = ordered[0];
  25.                 }
  26.                 else
  27.                 {
  28.                     comp.selectOnUp = ordered[i - 1];
  29.                     comp.selectOnDown = ordered[i + 1];
  30.                 }
  31.             }
  32.         }

Not really a NGUI problem per-se, but has anyone else experienced strange editor behavior ?