覚えるの面倒だなと思って避けてたんですけど、使ってみたら便利だったので持ってる人は使ってみても……って思います。
見た感じで分かるようにはなってます。
UIViewの遷移をノードベースでつないで表現できる機能です。
遷移の条件はDoozyのボタンか、GraphControllerから直接GoToNodeメソッドを使って遷移することができます。
前提としてUIViewを適当に作っておきます。
遷移はUIViewじゃないとできないかも。PopUpとかは出来ないっぽい?

1.シーン内にGraph Controllerを追加する。

2.グラフエディタを開く

3.グラフアセットを作成する

画像ではすでにノードがありますが、左上の「Graph」ボタンから[Graph Controller]用のアセットを作れます。
4.ノード編集
ゲームエンジンによくあるノードエディタです。

ノードエディタ内で右クリックからメニューを開けます。
[Crate Node] ➡[UI Node]がUIViewを表示する基本のノードです。
ノードをクリックして選択すると、インスペクタに設定画面が表示されます。
[On Enter Node]と[On Exit Node]はそれぞれノードに遷移したときと次のノードに遷移するときに呼ばれます。
可能な処理はUiViewを表示するか隠すかだけです。
また、上段水色の[OutPutConnections]には次のノードに移る条件を指定できますが、
ここで指定できる遷移条件は、UIButtonと時間経過と文字列を送れるGameEventです。
この[OutputConeections]からのボタン設定ですが、[Alt+D]から表示できる
DoozyのAssetエディタでButtonの欄に設定している必要があります。

それと設定したあとに、UIButtonをシーン内に置いただけではダメで、
ゲームオブジェクト名をリネームする必要があります。

画像のように対象のUIButtonオブジェクトを選択して、カテゴリと[Button Name]をインスペクタから設定してから、「Rename GameObject To “”」ボタンを押します。
多分、Doozyはゲームオブジェクトを名前で判別してる気がします。UIButtonに限らずUiViewやそのほかのオブジェクトもリネームしておかないと、表示するときのアニメーションが再生されなかったりします。
ここまでくればノード作成は感覚的に出来るかと。線を引っ張って次に表示したいノードにつなげて、ノード内のShowViewとHideViewにUIViewを設定していきます。
注意点として多分Start()内で呼んでも拾ってくれません。
これでグラフ設定は完了です。
あとUIViewの[Behaiviour at Start]をHideにしておかないとダメなようです。公式のドキュメント動画ではHideにしてました。してなかったら最初から表示されています。ずっと表示するならもちろん何もしなくていいですが。
使ってみた感じ、やっぱりGraph Controller自体はすごく便利です。
私は、この処理をオンラインで対戦相手を探す時のUIに使ったんですが、「相手を探しています」みたいなよく使うUIを
UiViewで作ってプレハブにすれば、シーンに追加するだけで使いまわせます。
グラフを作る必要はありますが、GameEventMessage.SendEventを呼び出すようにしておけば、同じタイミングで呼ぶことも簡単にできます。
gameEventを使うと遷移がややこしくなってしまうかも。ゲームのあるタイミングでViewを出したいときは、UIView.Showviewを直接呼んだ方が良いかもしれません。
UIPopUpを使っても好きな時に呼べますが。
設定することがちょっとありますが、それさえクリアできれば面倒なUI処理の負担を大幅に減らしてくれます。
個人的に必須アセットだと思ってます。
色んなプラットフォームでもバグなくちゃんと動きますし。
コメント