Tasharen Entertainment Forum

Support => NGUI 3 Support => Topic started by: bac9 on October 09, 2014, 05:39:02 AM

Title: Simple anchor setup question
Post by: bac9 on October 09, 2014, 05:39:02 AM
I was not able to figure it out from the documentation so I apologize if it is obvious. The question is: how can I (through code) set the reference points of Unified anchoring of a widget to Top/Bottom/Left/Right enum values that NGUI inspector UI always offers you to use? I have not found any argument like that in the SetAnchor method or among the properties of individual anchors, which leaves me reliant on rather ugly hack where I match the pixel dimensions and position of an anchored widget to those of it's parent and hope that NGUI auto-selects the appropriate reference mode on each of the four anchor points. It usually does, because mode I want has the closest relative offset (zero), but I'd rather avoid doing that.

I understand that those handy enums and Unified anchoring mode on the whole are probably just editor-side wrapping of underlying auto-generated Transforms and underlying Advanced anchoring mode, and I see the methods allowing you to set reference Transforms for anchors, but I'm not seeing any way to fetch those points in the first place. I can calculate the 4 corner points and 4 side midpoints myself, of course, and create my own transforms there, but that would be very dirty and I'd rather prefer to find a way to get a reference to existing ones.
Title: Re: Simple anchor setup question
Post by: ArenMook on October 10, 2014, 02:18:02 AM
widget.SetAnchor, or if you want individually -- widget.leftAnchor.Set, widget.rightAnchor.Set, etc.

P.S. If setting them individually, don't forget to call widget.ResetAndUpdateAnchors(); after you're done.
Title: Re: Simple anchor setup question
Post by: bac9 on October 11, 2014, 03:57:20 AM
Yes, I know about widget.*anchor.Set - but there is no overload that allows you to set up snapping to the left/right/top/bottom edge, only relative offset, absolute offset and optional transform you have to come up with yourself, supposedly. How can I get the Transform reference to the center of the left edge of a widget I'm anchoring to, for example? Without calculating that position from scratch, that is - it's possible to do so, but I suspect NGUI already calculates those points to present them in the custom inspector of the anchors.
Title: Re: Simple anchor setup question
Post by: ArenMook on October 11, 2014, 04:52:02 AM
Eh? The relative value is it. 0 means left, 0.5 means center, 1 means right. Check the documentation for the UIRect.
Title: Re: Simple anchor setup question
Post by: bac9 on October 11, 2014, 04:58:28 AM
Eh? The relative value is it. 0 means left, 0.5 means center, 1 means right. Check the documentation for the UIRect.
Oh, thanks, that's a relief, I assumed both were pixel offsets than had nothing to do with setting the point of origin. :)