p_chinのおっぱいブログ

UnityとPerlなど

湯ナイト 2014 summerというイベントに行ってきた

湯ナイトSummarに行って来ました。

日本Androidの会Unity支部主催のイベントでした。

FaceBookグループを学生時代に見つけてからカジュアルに入ってずっとROM専だったけど、今回の湯ナイトのイベントもたまたま見つけて楽しそうだから参加してみた。

2泊3日で知らないおじさんも居る中で伊東の旅館に泊まってUnite Japan 2014のvimeoに上がってる動画を視聴する様な催しでした。

参加者の大半は学生時代にUnityGameJamや勉強会などのイベントで会った事のある方ばかりだったので、なんとなく打ち解けられた気がする。

以下は旅行中のtweet(こういうの載せるとその時のワイワイ感が伝わって良いらしい)

ちゃんと最後に3連休の最終日を憂いている人間の感情を表現できてる。

旅館についてからPC開いたら、起動しなくて辛かった。

でも帰り際にもう一回試したら、無事に起動出来て嬉しかった。

あとUnity製のDino Hunterっていう恐竜を殺害して行くゲームを会社のベトナム人に紹介されて行きの電車でやってたら面白かった。


印象的だったセッションとその感想

Unity 5.0 アセットパイプライン/アセットバンドル

主にAssetBundle(以下"AB"と略す)で面倒くさかったビルド周りのサポートを強化した話だった。(Sceneの話もあったけど、個人的にはそこまでインパクト無かった)

以下の様な Asset管理機能 がEditor上で追加されている。

AssetBundleLabel

ディレクトリのAssetにAssetBundleLabelという文字列の属性を付けられて、 そのLabel名が hoge ならそのディレクトリ以下のAssetがABにビルドされて hoge.unity3d ファイルを作成する。

AssetBundleManifest

ABと一緒に中に入ってるAsset情報が記載されてるAssetBundleManifest(yaml)ファイルも書き出されるから、ABの中身の妥当性をチェックするテストを書くならばこのファイルをチェックして行くことになりそう

今までだとABに入るべきAssetの存在確認をプロジェクト内から検索してテストしてたけど、そんな事しなくても良くなりそうだと思う

差分ビルド機能

5.0からUnityがよしなに既存のABから差分チェックしてくれるらしい。

更新のあったリソースを含むABのみをビルドする様になる。

.unity3dファイルの保存場所もManifestファイルで管理する様になったので、内部の仕組みでチェックする事が出来る様になった気がする。


なんか多かったので、紹介は一個だけにする。 Unite Japan 2014のvimeoを見ると良い。

まとめ

3連休に適当にダラダラしながら温泉に入りつつ、Unite2014を見るのは適度に集中して見れて楽しかった。

ビデオ一本見てから参加者で内容について議論するんだけど、その参加者にUnityの中の人も居たので議論の進行も良かった。

また、自社以外のUnityエンジニアと交流するのも久しぶりで、色々な辛い話などを共有出来たのも有意義だった。

主催者の@kamayuki_fsさんや企画関係者の方々、ありがとうございました。

UnityEditorで選択したファイルのGitHubのurlを開くEditorTool書いた

最近良く複数人で同じコードをチェックして問題のある部分を共有する事とかあって、

  • githubからでポチポチ目的のファイルまでたどり着くの頑張ったり
  • UnityEditorからTerminalへファイルをD and Dしてpathを出して、それをコピペしてgithubのurlに貼付けて目的のファイルのurlを開く

とかしてたけど、面倒くさかったのでEditorToolからAssetのpathを取得してApplication.OpenUrlgithubのページを開きたいと思った。

UnityのProjectWindowからAssetを選択して右クリックして出たメニューからgith ...

本当はこうしたかった

  • コードから『checkoutしてるbranch名』・『リポジトリ名』・『チーム名』を自動取得したかった。
    • なんかC#libgit2sharpgit config --get remote.origin.urlとかgit remote show originみたいなAPIが無かったので諦めた
    • あと.git/以下のファイルを見れば行けそうだったけど、ハマりそうだしカジュアル(手抜き)な実装にした

良く切り替えるScriptDefineSymbolをEditorToolからサクっと切り替えられると便利

結構デバッグモードとかをDefineSymbolで制御してて、Edit->ProjectSettings->Player->OtherSettings->ScriptingDefineSymbolに文字列を直打ちして切り替えるの面倒だし間違えやすい。

なのでプロジェクト内で割と切り替える事の多いDefineSymbolGroupにEditorToolから切り替えられる様にしてる。

プロジェクトで良く切り替えるScriptDefineSymbolのグループをEditorToolから ...

開発環境じゃなかったらLogを出さなくする仕組み

ストアに申請するビルドだけLog出さない様にしたりとか、できる

namespase無しのこのクラスをプロジェクトに置けば、こっちが優先的に参照される

開発環境じゃなかったらLogを出さなくする仕組み

testflightのアップロードAPIにcurlでPOSTすると、レスポンスに'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)が返された問題あったけど治ってた

今日になってから、いきなりこのレスポンスが返される様になった気がする。

'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

被害

  • アプリケーションバイナリ自体はアップロード出来ていて、実機にinstallしても、特に問題は無い
  • しかし、アップロードの通知メールも来なくなってしまうのが大変不便だ

原因

  • 多分またアプリ名とかに日本語使ってるからだと思ってる
  • 前のエントリーと似た匂いしかしない、pythonのエラー返されてるから

まとめ

直すの面倒くさそうだけど、このままだと不便だ


10/11追記

なんか、なおってた