うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】TreeView で TreeViewItem をドラッグ&ドロップするサンプル

TreeView でドラッグ & ドロップをする処理が分からなかったので、調べて github にサンプルコードを上げました

もし実装する際によければ参考にしてください

f:id:hacchi_man:20210806225553p:plain:h300

github.com

ドラッグ & ドロップ に必要なメソッド

以下のメソッドが override されていれば ドラッグ & ドロップ することが可能になっています

詳しい処理は github を見てみてください

   /// <summary>
    /// 要素を移動できるか
    /// </summary>
    protected override bool CanStartDrag(CanStartDragArgs args) => true;
 
    /// <summary>
    /// ドラッグ開始時の処理
    /// </summary>
    protected override void SetupDragAndDrop(SetupDragAndDropArgs args)
 
    /// <summary>
    /// ドラッグ中とドラッグ終了時の処理
    /// </summary>
    protected override DragAndDropVisualMode HandleDragAndDrop(DragAndDropArgs args)

こちらは必要では無いけど、TreeViewItem を 親とするなら override が必要です

   /// <summary>
    /// 入れ替え時親となれるか
    /// </summary>
    protected override bool CanBeParent(TreeViewItem item) => true;