Hi,
I recently updated NGUI from 3.7.9 to 3.9.0b on Unity4.6.7f1 and I found some UILabels in my project became "vibrating", which means their widths (or maybe locations) change all the time and never stop.
All these "vibrating" labels are using dynamic font, set as ResizeFreely, and using Advanced anchor like only set Left anchor to its neighbor.
You can see this in following steps in a new project:
1. create an UIWidget container and add an UISprite as a child, set its anchors as Unified to the container.
2. create an UILabel (say label1), use font: "Fantasy Font - Normal" in NGUI example, input some text, set it ResizeFreely, and only set its left anchor to UISprite's right side. Anchor executes "OnUpdate".
3. create another UILabel(say label2), do same thing to label2 and set its left anchor to label1's right side.
4. run game and you may see label1 and/or label2 are "vibrating". If not, try to modify label1's left anchor's distance to UISprite.
5. it's easier to happen if sets text every frame in Update().
I'm not sure what causes this but when I tried to check the diff between these two versions, I found that two lines are added in UIWidget.cs (line 1213~1214 in OnAnchor()), which rounds up newPos.x and newPos.y. And if I commented them out, then "vibrating" disappears and UILabel works as usual.
I would like to ask how to solve this problem, or just I shouldn't use UILabel in such a way?
Thank you.