【Unity】【UI Toolkit】自作のカスタムコントロールをUI Builderのライブラリに表示させないHack

UnityのUI Toolkitで自作のカスタムコントロールをUI Builderのライブラリに表示させないHackyな方法の紹介です。

Unity 2021.3.25f1

やりたいこと

UI Toolkitでは、以下の記事のように独自のコントロールを作成することができます。

light11.hatenadiary.com

このように独自のコントロールを作成すると、UI BuilderのLibraryのProjectにそれが追加され、使えるようになります。

Project
しかし外部ライブラリとしてツールを作るようなケースでは、そのツール用のカスタムコントロールが、それを導入するプロジェクトから見えてしまうという問題があります。

本記事ではこのようなケースに対応するため、独自コントロールをUI Builderから見えなくする方法についてまとめます。

方法(Hackyな方法)

方法としては、UxmlFactoryuxmlNamespaceをオーバーライドしてUnity.UI.Builderを指定するだけです。

public new class UxmlFactory : UxmlFactory<CurveSelector>
{
    public override string uxmlNamespace => "Unity.UI.Builder";
}

これは、Unity.UI.Builderの名前空間を持つUXML要素はUI Builderに表示されないという動作を利用した方法になります。
しかし以下のフォーラムにもある通り、公式の仕様とされているわけではないHackyな方法となるため、今後使えなくなる可能性があります。

forum.unity.com

関連

light11.hatenadiary.com

参考

forum.unity.com