iOS/Androidで使うワークフローをもう少し詳しく。テラシュールブログスマートフォン用の表示で見るテラシュールブログ旧テラシュールウェアブログUnity記事。UnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。iOS/Androidで使うワークフローをもう少し詳しく。iOS/Androidに使うワークフローをもう少し詳く。このフローは4つの機能で構成される。?.Excelファイルインポート時に反応する?.データの形状に対応するScriptableObjectを生成する。既存の物があれば使用?.Excelを解析し、2で取得したScriptableObjectに流しこむ?.変更を確定する紹介甩のソースコード全部はこちら。https://gist.github.com/tsubaki/5900938まず?についてだが、AssetPostprocessorのOnPostprocessAllAssets使用する。コンテンツパイプライン拡張の機能で、要するにUnityプロジェクトにファイルを追加した際何らかのアクションを行うクラス。これをEditorフォルダ内に入れて動作させる。これの第一引数が、インポートした全てのファイルパスを寄越すので、その中から取り出したいxlsファイルを選択する感じ。(asset))continue;次にScriptableObjectの生成について。ScriptableObjectの概要については、以前記載したので割愛。要するにUnityの読みやすいデータ。tsubakit1.hateblo.jpここでの処理も簡単で、ScriptableObjectを継承したFileDataクラスアセットを探して、なければ作る...といった感じ。注意すべきはエディタ内のフォルダ管理をSystem.IOではなくAssetDatabaseでやってる点。これはAssetを使う場合のお約束みたいな物なので、そうなのかー程度に覚えておけばOK。毎回消して作らないのは、消して作るとエディタ内のアセットIDが生成前と生成後で異なってしまう為。要するにシーンやプレハブからの参照が切れてしまう。exportPath);}ちなみに個別のScriptableObjectを作らず「汎用クラスを作って管理すれば良いじゃん」みたいな考え方には反対。一つ目の理由が、List内のListのような伸縮自在の構造をUnityのシリアライズは許可出来ない点。そのため、Excelの縦x横yといった規模のデータ構造を再現出来ない。一つの理由は、汎用データを作る場合Stringでデータを持つ事になると思うが、Stringはデータサイズが大きくなりやすい上、他のクラスへパースする際に時間がかかる為。手間を省きたいなら、パースとデータ型を自動生成するような機能を用意する必要がある。いうことで、出力先・入力先が固定となるので、出力先ファイル・入力先ファイルが固定パスとして記述されてる。お待ちかねExcelに流しこむ部分・・・・・も先日紹介しているの割愛。tsubakit1.hateblo.jpちなみにExcel.dllは可能な限りEditorに入れるべき。いうのも、Editor以外にあるとビルド時にアプリに含めてしまう。そのため、Editorでしか使わないDLLはEditorフォルダに入れるべき。();}ちなみに、excelReader.nameでシート名が取得出来る。上手く使えば、シート毎にステージ情報を別ScriptableObjectとして生成...なんてことも出来る。下のゲームでは、その方法でゲームの難易度(Hard/Easy)を管理していた。娘http://www.unitygames.jp/game/ug7000556最後に変更を確定する。これもおまじないみたいなもので、一度AssetDatabaseからScriptableObjectを取得し、EditorUtility.SetDirtyで確定する。これをしないとエディタ終了時に無かったことにされる。(obj);これで、後は指定パスへファイルを配置すると、自動でUnityが読み込んでScriptableObjectへ流しこんでくれる。́・ω・`)データの管理や一覧の取得等には使えるかもしれない。計算結果を使いたい場合は、xlsをXMLか何かとして出力し、Excelを読んでる部分をXMLを読む部分に差し替えて読むと良さげ。明日また書く予定まさかツィート回数が50回にもなるとは思わなんだ。iOS/Androidで使うワークフローをもう少し詳しく。(1)月別アーカイブはてなブログをはじめよう!tsubaki_t1さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。