UXMLをCloneTreeする時に引数に親要素を渡すかどうかで生成結果が変わる
普通にCloneTreeしてその結果を他のVisualElementにAddするとかやると、TemplateContainerという要素が親になりその子に本来の要素が入ったものが生成される。
が、
次に、ビジュアルツリーを作成し親要素にアタッチします。
template.CloneTree(parentElement, slots);
上のステートメントでは、テンプレートの <UXML> 要素は VisualElement には変換されません。その代わりに、すべての子は parentElement で指定された要素にアタッチされます。
とあるように、CloneTreeの引数に直接親要素を渡してあげると、先のTemplateContainerは生成されず直接指定した要素に配置されるようになる。
普段のGameObjectのノリで扱おうとするとスタイル適用の状態差も相まって色々思った通りに動かないがちなので注意が必要。