UnityのUI Toolkitで自作のカスタムコントロールをUI Builderのライブラリに表示させないHackyな方法の紹介です。
Unity 2021.3.25f1
やりたいこと
UI Toolkitでは、以下の記事のように独自のコントロールを作成することができます。
このように独自のコントロールを作成すると、UI BuilderのLibraryのProjectにそれが追加され、使えるようになります。
しかし外部ライブラリとしてツールを作るようなケースでは、そのツール用のカスタムコントロールが、それを導入するプロジェクトから見えてしまうという問題があります。
本記事ではこのようなケースに対応するため、独自コントロールをUI Builderから見えなくする方法についてまとめます。
方法(Hackyな方法)
方法としては、UxmlFactory
のuxmlNamespace
をオーバーライドしてUnity.UI.Builder
を指定するだけです。
public new class UxmlFactory : UxmlFactory<CurveSelector> { public override string uxmlNamespace => "Unity.UI.Builder"; }
これは、Unity.UI.Builderの名前空間を持つUXML要素はUI Builderに表示されないという動作を利用した方法になります。
しかし以下のフォーラムにもある通り、公式の仕様とされているわけではないHackyな方法となるため、今後使えなくなる可能性があります。