Unity Style Developer#1 で 質問してきました! #unistyle

Unity Style Developer#1 - connpass に参加してきましたー。

Unity - Game Engine って iOS/Android 作れるんでしょ?
って位しか知らないど素人でしたが、対応プラットフォーム多いんですね!

ハンズオンのセッションがあって、当日に Unity インストールしましたが楽しめました~。
HTC Vive の実機ありセッションもあって楽しかったです。

で、LT お願いされてたので、何話そうか考えたけど触ってないし話せること無いから、 中の人来てるし質問を答えてもらおう!って感じのLTというかショートセッションというかをやりました。

一応 Data Platform の MVP なので、Data にまつわるところを聞いてきました。
また、会場の参加者からも質問が上がったのでその時のメモを公開します。*1

Q.ローカルにデータを持つ方法パッと調べた感じこんなの見つかったけど、他にも方法あるの?
1.PlayersPrefs
2.ScriptableObject
3.DB(Sqlite?)
4.外部ファイル - txt(json)
5.外部ファイル - binary (msgpack / flatbuffers ?)
6.asset
7.それ以外

A.概ね 1-6 で合ってるよー。
PlaysersPrefs
  =>設定用 (key / url 等の config とか小さいデータ用)
    大きいデータいれると起動が遅くなる、メモリ大量に必要
    =>起動時に読み込むため
ScriptableObject
  =>書き込み出来ない (Read Only)
PlayersPrefs / ScriptableObject / asset は Unity の機能で面倒みてくれる。

外部ファイルや DB は自前で保存/読込実装してね。
json そのままは辞めた方が良いよ。よく使われてるけど

個人的には msgpack よく使ってます。


Q.暗号化ってあるの?

A.Unity では暗号化の機能は持っていない
 =>解析されると、それを使っている全アプリが解析されることになるので、そこまで担保出来ないから


Q.サーバーから取ってきたデータのキャッシュみたいなのはどの方法で?

A.データが少ないなら ScriptableObject (実装?が面倒)
大きいなら DB とか


Q.PCL(Portable Class Library) 使えるの?

A.PCL の事知らないのでわかりません。
  (会場で調べた人から)たぶん使え無さそうという情報が


Q.ソース管理で大きいファイルがあって、某クラウドソース管理でアップに失敗する

A.大きいファイル含めないようにするとか
 [https://unity3d.com/jp/services/collaborate]  では、Write データ含めない
 =>無料だけど、未だβ版


Q.PlayersPrefs に 100個の int[] 保存するの遅くなる?

A.使っても構わないけど、PlayersPrefs 使うより、自前でSystem.IO使って読み書き(シリアライズ/デシリアライズ)した方がたぶん速いよ。
Web のプラットフォームだと、System.IO 使えないけど。

間違いとかあれば教えてくださいー。

*1:聞き間違い等で誤った内容を書いてるかもしれません。