トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

Figma→UnityのToolを試す【UnityFigmaBridge】

ここで紹介されているUnityFigmaBridgeを試す

zenn.dev

Unity Figma Bridge ver1.0.8

Unity 2022.3.7

初期設定

Figma側の構成やUnityの設定でいろいろできることが変わるが、とりあえず流れを知るためにざっくり適当なファイルで連携してみる

Figma側

設定から個人トークンを作成

あとシーンのURLが必要

Unity側

PackageManagerで

https://github.com/simonoliver/UnityFigmaBridge.git

を取り込む

github.com

Unityの上のメニューのFigmaBridgeのAccessTokenでFigmaのトークンをはる

 

プロジェクトセッティングのUnityFigmaBridgeでCreateを押す

CreateしたらAssets直下にUnityFigmaBridgeSettingsというのができる。メニューからも選択でき手インスペクタで表示される

Document URLにFigmaファイルのURLを貼る。これデスクトップで作ってたらどうやって確認するんだろう~ 

OKなURLだったら緑でValidFigmaと出る

RunTimeAssetsSceneにシーンのパスを書くらしい。(Figmaにシーンなんて概念なくない!?って思ったらUnityのシーンだった。最悪書かなくても今開いているシーンが勝手に入ってくれた)

TextMeshProがUnityに入ってなかったら入れておく

そのあとSyncDocumentをメニューから選ぶとインポートされる

ここにページ丸ごとプレハブが入ってた

Screensフォルダの中にはFrameが全部プレハブ化されている

それをシーンに勝手に追加されていたCanvasの下に置いたらとりあえず表示された!

日本語以外は表示されている

Figma

Shadowコンポーネント、Unity側にもついてるのになんか反映されてないな~

ImageコンポーネントはFigmaImageというものになってる。画像名はFigmaから変わっている

いろいろ設定

ドキュメントなど読みつついろいろ細かい設定してみる

Unity側

Only Import Selected Pageにチェックを入れるとFigma側のページを選べる

フォントも一致するGoogleフォントをダウンロードしてくれるみたいだけどどこで有効にするか分からないな~

名前でも検索してくれるらしいので、最初からUnityに入れておいてもよさそう

Figma側

最初の紹介記事によると

Figma上に「SafeArea」という名前のオブジェクトがあればSafeArea対応のコードも自動付与してくれたり、

「button」という名前が入っているオブジェクトがあればボタン化してくれたり、

フレームと同じ名前のクラスがあれば自動でAdd Componentしてくれて、

さらにSerialize Fieldされた変数の名前と一致するオブジェクトがあれば自動割り当てしてくれたり

してくれるらしい!!

Readmeにも確かに書いてある

あとFigmaのプロトタイプ機能で実装した遷移も反映してくれるらしい

ということでプロトタイプ機能でつなぎつつ、safeareaとbuttonの名前がついたものを追加したデザインを作った

そしてUnityの別シーンへsynxしたら今度は最初からCanvasの下に入った!

プロトタイプ機能で最初の画面を設定しているからかな?

プロトタイプ機能

そして実行したらちゃんと遷移した!プレハブが読み込まれて差しかわる

なんか一瞬黒くなるトランジションのエフェクトも入ってる

text

英語のテキストでNotosansを使ってると、Unityにも勝手にフォントを入れてくれてた

でも日本語はだめだ~

ボタン

ボタンには普通のButtonコンポーネントと遷移用のスクリプトがついてる

「ボタンが追加されると、「selected」という子ノードが検索されます。これが見つかった場合は、これをロールオーバー状態に使用します。」って書いてたからFigma側でどうにかしてselected状態のUIを設定したら反映されるのかな?

同じ名前にselectedを付けたものを近くに置いてるだけじゃさすがにダメだった

InputField

Figmaで名前にInputFieldを付けたら、Unityでもついてた。でもこれはTextMeshPro用じゃないんだな。参照するTextが普通のTextのみになってる・・・

safearea

safeareaもスクリプトついた。

しかもすごいのが実行したら、UI自体は非表示になった。Figmaではsafeareaの範囲を分かりやすくするためにいつもピンクの枠にしていて、Unityでも実行前はその枠があるけど実行したら消える

でもよく考えたらsafeareaはUnityでは構造的には親にあってほしい

bibinbaleo.hatenablog.com

 

同期後の修正の反映

Unityに一度取り込んだ後、Figma側でUIを追加して、もういちどsyncしたらちゃんとシーン上のプレハブに反映された。

でもプロトタイプの遷移の変更は反映されないのかな・・・?

スクロール

プロトタイプでスクロール対応したらちゃんと反映された。

マルチ解像度

一番大変なマルチ解像度対応

Figmaでなにも設定しない状態だと上固定かな?

そして私がFigmaであんまりレイアウト設定しないから、FigmaでどうしたらUnityみたいなレイアウト設定ができるかわからん・・・

なんかここで設定するはず

適当に設定して同期したらUnityでも反映されていることは確認した。

Unityで変更

Unityでプレハブ内の構造やコンポーネントなどを変えた後、Figmaから再度同期したらどうなるか。

Unityで行った変更はどこかに行ってFigmaの構造に戻ってしまった;;

Unityでvaliantのプレハブにしてその中で変更した後に、同期したらさすがに大丈夫かと思ったが、Variantでの変更も消えた;;