Unityあれこれ
ローカルのUnityプロジェクトが最新にならない
チーム開発等でUnityのプロジェクトを最新にしても、ローカルのAssetが古くて挙動がおかしいことがあった。
以下の手順で解決。
- Unityを終了
- プロジェクト直下のLibraryディレクトリを丸ごと削除
- Unityを起動
Canvas以下に置いたTestTextというコンポーネントを探して、テキストを変える
int number = 0; var canvas = GameObject.Find ("/Canvas"); foreach (Transform child in canvas.transform) { if (child.name == "TestText") { Text target = child.gameObject.GetComponent<Text> (); target.text = "hoge" + number.ToString (); } number++; }
GameObjectの表示/非表示切り替え
- SetActive() を使う
- 非アクティブ化されたGameObjectを取得できるFindDeep() を使う
- 第二引数にtrueを渡すと非アクティブなGameObjectも検索対象になる
bool isActive = false; gameObject.FindDeep ("MyChunoText", isActive).SetActive (isActive);
Modelとテーブルを追加する
追加したいテーブル
CREATE TABLE `hchuno_items` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code` int(11) DEFAULT NULL, `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `version` int(11) DEFAULT NULL, `created_at` datetime DEFAULT NULL, `updated_at` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
手順
Active Recordを使ってModelを生成
$ rails generate model hchuno_items code:integer name:string version:integer
invoke active_record
create db/migrate/20150205000000_create_hchuno_items.rb
create app/models/assetbundle_master.rb
invoke rspec
create spec/models/hchuno_items_spec.rb
invoke factory_girl
create spec/factories/hchuno_items.rb
マイグレーションを実行してテーブルを追加
$ rake db:migrate
(in /Users/hchuno/projects)
== 20150205000010 CreateHchunoItems: migrating =========================
- create_table(:hchuno_items)
-> 0.0399s
== 20150205000012 CreateHchunoItems: migrated (0.0400s) ================
コルーチン関連
処理内容
- ボタンを表示
- ボタンを押すと指定したSceneに遷移
- 裏で、指定したURLに接続
ソースコード
using UnityEngine; using System.Collections; public class Title : MonoBehaviour { void OnGUI () { if (GUI.Button(new Rect(Screen.width/2 -100 , 100, 200, 50), "GAME START")) { Application.LoadLevel("particles"); StartCoroutine("LoadData"); } } private IEnumerator LoadData() { string url = "http://localhost:3000"; WWW hoge = new WWW(url); while (!hoge.isDone) { yield return null; } } }
日本語配列キーボードなMacBook Proに行った設定
概要
職場で日本語配列キーボードのMacBook Pro(以下、MBP)が支給された。
US配列キーボードのものが欲しかったのだが、あまり贅沢は言えず。
とは言え、普段慣れ親しんでいるのはUS配列のキーボードなので、極力そちらに近づけたほうが良いということで、色々と試してみた。
各種設定
ThinkPadのUS配列USBキーボードを使用
MBPに接続して認識させた後、システム環境設定の「キーボード」にて少々キーバインドを変更する。
メリット
- ほぼUS配列キーボードのMBPと同じ挙動
- トラックポインタが使える
デメリット
- MBPの占有スペースが無駄
- MBPのトラックパッドが使えない
- 持ち運びにくい
キーバインディング変更ソフトを使用
- Karabiner - OS X用のソフトウェア
- 以前は「KeyRemap4MacBook」という名で知られていたソフト。OS X10.9から名前が変わった模様。
- 言語に応じた細かい設定も可能になっており、「For Japanese」→「Change Keyboard Layout」とたどると以下の様な項目があった。「USE Japanese Kyeboard as US Keyboard」という項目もあったのだが、いまいち期待した挙動にならなかったため止めておいた。
メリット
- 場所を取らない
- トラックパットが使える
- 持ち運びしやすい
デメリット
- ThinkPadキーボードと比べるとキー配列に違和感が残る
- 表記と異なる挙動をするキーが存在する(普段の慣れに頼るしかない)
最終的な設定
- かなりUS配列の挙動に近づいた!
- 各キーの表記に釣られてしまうので、無刻印キーボードのつもりで慣れるしかない…
結論
「腰を据えて使うときはThinkPadキーボード、持ち運ぶときはMBP単独」という使い分けができるようになっただけでもデカい。
rails console が動かなかった件
$ rails console /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/2.1.0/irb/completion.rb:9:in `require': cannot load such file -- readline (LoadError)
「readlineが無い」ということなので、rb-readlineをインストール。
$ gem install rb-readline
Gemfileを開いて、
gem ‘rb-readline’
を追記。
その後、bundle installを実行。
$ bundle install
再度、rails console を実行したら無事に動いた。
Chrome拡張のSilverBirdでリストが取得できなかった件
状況
- リストを表示しようとしたら、「"undefined"(Not Found) updating tweets 」というエラーが出て表示できなかった
対処方法
~/Library/Application Support/Google/Chrome // ↑Macの場合のパス。Windowsだと異なるが、ファイルの中身等やること自体は変わらない
この下に
lists_timeline.js
というファイルがあるので、find等で探して編集。
_extendParams … … params.slug = this.listIdParts[2]; // ↑変更箇所
となっている箇所を
_extendParams … … params.slug = this.listIdParts[3];
に変更し、SilverBirdを再起動。
2015-01-09補足
上記の方法でSiverBirdを再起動すると破損扱いされて「修復」を選ばざるを得なくなり、そうすると上記の編集がリセットされる。
そこで「拡張機能のパッケージ化」を利用して「独自設定したSilverBirdをインストールする」という方法を採ることにした。
lists_timeline.jsを編集後、SilverBirdの再起動は行わず、以下の場所にある「manifest.json」を編集する。
/Users/hchuno/ライブラリ/Application Support/Google/Chrome/Default/Extensions/ExtensionのID/バージョン名/
- 「key」「update_url」の行を削除して保存する。
- Chromeの「拡張機能」の画面を開く
- 「ディベロッパーモード」をチェックする
- 「拡張機能のパッケージ化」ボタンを押す
- 「拡張機能のルートディレクトリ」のところに、上記のバージョン名ディレクトリまでのパスを入れる
- 「秘密鍵ファイル」は空欄にしておく
- 「ExtensionのID」ディレクトリ直下に「バージョン名.crx」というファイルが生成されているので、これを拡張機能画面にドラッグアンドドロップする
- ディレクトリをFinderで表示させる場合は、Finderのメニューから、移動→フォルダへ移動、と選択して、上記のバージョン名までのパスを入力する
- オリジナルのSilverBirdの「有効にする」チェックを外す