17 [AddComponentMenu(
"Layout/Extensions/Curved Layout")]
23 [Tooltip(
"axis along which to place the items, Normalized before use")]
25 [Tooltip(
"size of each item along the Normalized axis")]
31 protected override void OnEnable() { base.OnEnable(); CalculateRadial(); }
43 protected override void OnValidate() {
49 void CalculateRadial() {
51 if (transform.childCount == 0)
55 Vector2 pivot =
new Vector2(((
int)childAlignment % 3) * 0.5f, ((
int)childAlignment / 3) * 0.5f);
58 Vector3 lastPos =
new Vector3(
59 GetStartOffset(0, GetTotalPreferredSize(0)),
60 GetStartOffset(1, GetTotalPreferredSize(1)),
67 float step = 1f / transform.childCount;
72 for (
int i = 0; i < transform.childCount; i++) {
73 RectTransform child = (RectTransform)transform.GetChild(i);
76 m_Tracker.Add(
this, child,
77 DrivenTransformProperties.Anchors |
78 DrivenTransformProperties.AnchoredPosition |
79 DrivenTransformProperties.Pivot);
80 Vector3 vPos = lastPos + dist;
86 child.anchorMin = child.anchorMax =
new Vector2(0.5f, 0.5f);
override void SetLayoutVertical()
override void CalculateLayoutInputHorizontal()
override void SetLayoutHorizontal()
override void CalculateLayoutInputVertical()
Credit Erdener Gonenc - @PixelEnvision.