Correct 'FlowLayoutGroup' in Unity3D, as per HorizontalLayoutGroup etc
<p>Say you want ordinary <strong>flush left flow</strong> in Unity UI.  Examples:</p>
<p><a href="https://i.stack.imgur.com/NjI9R.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/NjI9R.png" alt="enter image description here" /></a></p>
<p><a href="https://i.stack.imgur.com/Z1cAW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Z1cAW.png" alt="enter image description here" /></a></p>
<p>In fact, to answer <a href="https://stackoverflow.com/a/38329934/294884">THIS question</a> I already achieved flush left flow &quot;the hard way&quot;. Set out a &quot;vertical group of rows&quot; in Unity autolayout, attach FattieFlow at the top level,</p>
<pre class="lang-c# prettyprint-override"><code>public class FattieFlow : MonoBehaviour
{
    public GameObject modelRow;
    public GameObject modelItem;
    public void Flow()
    {
        screen = GetComponent&lt;RectTransform&gt;().rect.width;

        // move downwards any which need to be moved downwards
        int row = 0;
        while (row &lt; transform.childCount)  // (dynamic)
        {
            if (transform.GetChild(row).gameObject.activeSelf) FlowRow(row);
            ++row;
        }
        // et cetera....
    }
}
</code></pre>
<p><code>FattieFlow</code> will completely re-flow it flush-left (by manipulating the lines, the hard way). Here's a script, demo, etc: <a href="https://stackoverflow.com/a/38329934/294884">the hard way</a>.</p>
<p>But that's a poor solution.</p>
<p>Ideally, starting with
<a href="https://docs.unity3d.com/ScriptReference/UI.HorizontalLayoutGroup.html" rel="nofollow noreferrer">UI.HorizontalLayoutGroup</a> and <a href="https://docs.unity3d.com/ScriptReference/UI.VerticalLayoutGroup.html" rel="nofollow noreferrer">UI.VerticalLayoutGroup</a>
it should be possible to create</p>
<h1><code>FlowLayoutGroup</code></h1>
<p>which lays out, flush left, into a block. (And indeed it should expand, and so on, the block as required ... exactly as <code>HorizontalLayoutGroup</code> behaves).</p>
<p>It would seem that you'd have to start with <code>HorizontalOrVerticalLayoutGroup</code> and work from there.</p>
<p>How would one do this (if it does not <strong>already exist</strong>)?</p>