編集可能

EZ GUIを使う上でのハマリ回避法

Unity Asset Storeで売られている「EZ GUI」というAssetを多人数で使う場合、いろんな問題がありそれの回避法を伝授していただきました。とても有難い
モバイル ezgui prefab UNITY
6
伊藤周@オーナカ @warapuri
Unityでの多人数ゲーム開発において、EZGUIの選択は間違ってしまったと言わざるをえない。たびたびテクスチャが壊れる事態があって収拾がつかない。困った…
h.omae @pigeon6
rebuild atlasすれば治るとかじゃなくて? RT @warapuri: Unityでの多人数ゲーム開発において、EZGUIの選択は間違ってしまったと言わざるをえない。たびたびテクスチャが壊れる事態があって収拾がつかない。困った…
伊藤周@オーナカ @warapuri
@pigeon6 いやそういうんでもなくて、prefab内のアトラスが更新されたりされなかったり。誰か一人だけがビルドアトラスすれば良いんでしょうが、それだと多人数で並行開発出来なくて困ってます。結局最後に誰か一人がビルドアトラスして全てのシーンを開いて更新すれば、治る感じ
Unity仙人 @lucifuges
シーンごとにマテリアルを分ける、シーンをまたぐコンポーネントはPrefab化する、で回避。QT @warapuri: Unityでの多人数ゲーム開発において、EZGUIの選択は間違ってしまったと言わざるをえない。たびたびテクスチャが壊れる事態があって収拾がつかない。困った…
伊藤周@オーナカ @warapuri
あー、これチームで徹底してるかチェックしてみます RT @lucifuges: シーンごとにマテリアルを分ける、シーンをまたぐコンポーネントはPrefab化する、で回避。QT EZGUIでたびたびテクスチャが壊れる事態があって収拾がつかない
h.omae @pigeon6
2Dtoolkitとかex2Dには勝手にビルドし直す機能があってないす RT @lucifuges: EzGUIのBuild Atlasは罠が多すぎる。
伊藤周@オーナカ @warapuri
@lucifuges prefabのprefabってうまくいってます? なんかそこらへんがマズイのかなあ
h.omae @pigeon6
それむり RT @warapuri: @lucifuges prefabのprefabってうまくいってます? なんかそこらへんがマズイのかなあ
Unity仙人 @lucifuges
PrefabのPrefabはUnityの設計上できないはず。Prefab下に組み込まれてしまった元Prefabは、親Prefabの一部として元Prefabから独立してしまう。QT @warapuri: @lucifuges prefabのprefabってうまくいってます?
伊藤周@オーナカ @warapuri
そおおだったのかあ… っ! RT @lucifuges: PrefabのPrefabはUnityの設計上できないはず。Prefab下に組み込まれてしまった元Prefabは、親Prefabの一部として元Prefabから独立してしまう @pigeon6
Unity仙人 @lucifuges
EzGUIのBuild Atlasは罠が多すぎる。
Unity仙人 @lucifuges
何が起きてるのかというと、あるコンポーネントがAtlasにまとめられたテクスチャのどの部分を使っているのかという情報は各コンポーネントインスタンスが持っているんだけど、別のシーンでも使われてるAtlasを再構築しちゃうと別シーンのUV情報は書き換わらずテクスチャだけが更新される。
Unity仙人 @lucifuges
Build Atlasしたあとシーンのセーブを忘れることでも同様の問題が発生する。
Unity仙人 @lucifuges
この問題を回避するには、EzGUIで管理するオブジェクトには複数シーンにまたがるようなマテリアル設定をせず、Build Atlasする際Search Project Folderのチェックを外すのが最も簡単。
Unity仙人 @lucifuges
どうしても複数シーンで使いまわすオブジェクトは、そのオブジェクトツリー全体で1つのマテリアルを参照するようにしてPrefab化する。
Unity仙人 @lucifuges
EzGUIはAssetStoreに最初に現れた本格的なGUI管理ツールだから注目されがちだけど、その作りはかなり甘い。Build Atlasの件もそうだし、Transition周りは注意深く使わないと簡単にバグの温床になる(Transitionがバグっているわけではないが)。
かみー @kamy0714
@lucifuges @warapuri さんのつぶやきから、たどり着きました。便乗なのですが、prefabにしか存在せず、シーンに存在しない状態のprefabのbuild atlasさせる上手い設計があればお聴きしたいです。prefabでしか使わないと決めているマテリアルを、
かみー @kamy0714
@lucifuges @warapuri 決めて、search project scan って感じで、行けるのかなあと、思ったのですが。
Unity仙人 @lucifuges
@kamy0714 Build Atlasする時にSearch Project Folderにチェックを入れれば反映されますが、そうするとPrefab化されているEzGUIコンポーネント全てのAtlasが再構築されるので問題が発生する可能性があります。
かみー @kamy0714
@lucifuges お返事、 ありがとうございます。なるほど。では、他のprefabが何処かのシーンのマテリアルと同じ物を使っている時には、atlasが壊れてしまうので、search project scanを使う時には、projectのprefabのマテリアルはシーンの物を、
かみー @kamy0714
@lucifuges 使わないという決まりが必要そうですね。突然の質問に答えて頂きありがとうございます。
Unity仙人 @lucifuges
@kamy0714 はい、それでほぼ回避できると思います。避けるべきはどこかのシーンに配置されているEzGUIコンポーネントが参照しているAtlasを、別のシーンを開いている時にRebuildしてしまわないことです。
かみー @kamy0714
@lucifuges うっかり間違えそうですが、気をつけて使ってみようと思います。ずっと胸に使えていたbuild atlasの謎がようやく解けました。本当にありがとうございました。
Unity仙人 @lucifuges
Unity Freeで多人数開発しつつEzGUIは完全に無謀だから辞めるべきw テクスチャのリンクとか切れまくってやばい。
Unity仙人 @lucifuges
みんなUnity ProでAsset Server使えばいいのに…とか思ってるけど、自分の関わってるプロジェクトでもAsset Serverは使わせてもらえてないw
残りを読む(1)

コメント

伊藤周@オーナカ @warapuri 2011年11月11日
@kamy0714 さんの質問も追記しました。
カジュート @furai13 2011年11月11日
書いてないようだから足すと、変更したマテリアルだけ選択してBuild Atlasするようにしとくと一回のBuild Atlasも早いしミスも減って良い。
ログインして広告を非表示にする
ログインして広告を非表示にする