【満員御礼/増員400名】第4回 渋谷Unity技術勉強会 xコロプラUnity事例発表
http://atnd.org/events/25102テクスチャのメモリが結構時間かかる
=>動的読み込みにする方がベター=>大きいデータは固まるので小さい単位で読み込ませた方が良い
昔:140M(ヒエラルキーに全部宣言)
=>今100M 程度 ・・うーん。実行時のこのメモリ使用量って 2.3系以上が対象なんだろうな・・・(古いのはもっとメモリ厳しいはず
参照をはずしてから、UnloadUnusedAssets()
テクスチャをnullしてから UnloadUnusedAssetsを呼び出してメモリー解放
配列として格納するものをリソースロードにしてる。シーンの中でもたないようにしてる…
http://unity3d.com/support/documentation/ScriptReference/Resources.UnloadUnusedAssets.html
Instantiateしなくても紐付いているだけで、メモリー使うので、Resources.Loadを使う。ただし、同期処理なので、一瞬止まってしまうので、使い所が肝心。
Asset>Resourcesのファイルのかなに画像を入れておけば、Sceneに紐付けておかなくても、ビルド時に読みこんでくれる
逐次ロード=>逐次解放 は基本なのか・・。 動的に読む前:動かすだけで50M程度メモリを食ってしまっていたらしい Resouce.Load
=>くま射的だと 熊が振り返ったときに行っている(演出の一部にしてしまう
Resources.Load / Unloadがメモリ使用量には一番効く
Assetファイル名からの動的読み込みなので、ファイル名の正規化は重要
・Prefab・・Assetを束ねたテンプレートクラス
・Hierarchy・・階層構造オブジェクト=>シーン読み込み時に全部関連を読んでしまうらしい=>Resource.Loadで動的にやりましょう
シーンの初期化時に端末差が多く出るなら、1シーン完結できないゲームはシーンは細分化した方が良い?
利用例) ・プロジェクト、会社固有のルール=>拡張で自動チェック ・入力処理の自動化(プログラマーじゃない人の支援とか
そういえばメニュー拡張はパラメータないとか言ってたけど、メニューのdisableとかはできないのかな
↓
別途、有効無効を判定するメソッドを用意します。次のサンプルのValidateLogSelectedTransformName()のようなやり方です。
http://unity3d.com/support/documentation/ScriptReference/MenuItem.html
できるだけ、C#で書くほうがいい。
そして、Unity依存しなくていいものは、C#でライブラリ化しておいたほうが後々幸せになる
C#の人・・publicフィールドは気持ち悪い(テクニカルガイドライン違反)=>アクセサーを作る(get、set関数) SerializeField の宣言を使えばprivate参照も見らる。
・Extending the Editor Introduction
http://unity3d.com/support/documentation/Components/gui-ExtendingEditor
CSS Preprocessor一覧
・LESSURL:http://lesscss.org/
→インストール
gitでnpm落として入れて、npmからインストール nodeもいる。
・下準備(環境変数)
NODE_HOME にnode.exeを設定 僕は「C:\node\v0.6.0」
さらにPATHへ%NODE_HOME%を追加しておく
git clone https://github.com/isaacs/npm.git cd npm git submodule update --init --recursive node cli.js install -gf
・これでインストールできる
npm install less
・Sass
CSSフレームワーク「Compass」
・compassgem update --system gem install compass
・compass createは全体を囲むフォルダを作ってくれないので
mkdir compass_app cd compass_app compass create
CoffeeScript
npm install -g coffee-script
XAMPPのPHPでインタラクティブシェル
C:\xampp\php\php -a