ローカル環境のWebアプリケーションにホスト名でアクセスする設定
例えばCodeigniterで構築したサイトとか、ローカル環境のWebアプリケーションにhttp://hogehoge.local/
みたいにホスト名でアクセスする設定を記述す。
環境
OS X 10.9.4
僕の家
手順
1. VirtualHostの設定
apacheのVirtualHostを設定する。
/etc/apache2/httpd.conf
にこんな感じで追記。
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "/Users/boku/workspace/hogehoge/public" ServerName hogehoge.local <Directory "/Users/boku/workspace/hogehoge/public"> DirectoryIndex index.php order deny,allow allow from All Options FollowSymLinks AllowOverride All </Directory> </VirtualHost>
追記したらapacheを再起動
sudo apachectl restart
2. /etc/hosts
を設定
ホスト名でアクセスできるように設定す。
例えばこんな感じ
127.0.0.1 hogehoge.local
以上。
ブラウザ上からhttp://hogehoge.local/
のような感じでアクセスできるようになる。はず。
リモートサーバー上のmysqlのdbをまるごとコピーしてローカルに反映する方法
まずリモート上でコピー
mysqldump -u [username] -p [dbname] > /remote/dbname.dump
scpでサーバーからコピー
scp username@hoge.com:/remote/dbname.dump /local/save/directory
ローカルのmysqlに反映
mysql -u [username] -p [dbname] < /local/save/directory/dbname.dump
たぶんもっと簡単な方法ある。
CodeigniterでMysqlのエラー文が読みたかったら
クエリ実行した後にこの文を入れよ
log_message ('error', $this->db->_error_message());
さらば救われん。
UnityでSkydome
裏面にテクスチャ表示するシェーダをSphereに貼ってあげるとこんな感じのスカイドームが作れる。
これは3つの球体に空、雲、山のテクスチャをそれぞれ貼って、雲テクスチャが貼ってある球体を回している。
以下シェーダのコード
Shader "Custom/Skydome" { Properties { _HogeTex ( "Base", 2D ) = "white" {} } SubShader { Tags {"Queue"="Transparent"} Cull Front CGPROGRAM #pragma surface surf Lambert alpha sampler2D _HogeTex; struct Input { float2 uv_HogeTex; }; void surf( Input IN, inout SurfaceOutput o ) { half4 color = tex2D( _HogeTex, IN.uv_HogeTex ); o.Albedo = color.rgb; o.Alpha = color.a; } ENDCG } FallBack "Diffuse" }
NGUIでクリックが効かないな〜と思ったらチェックすべきポイント
CameraのClipping Planesの値を確認すべし。
UICameraによって飛ぶRaycastの範囲はこの間のみ。この範囲内にコライダーがないとRaycastが当たらないため、クリックなどのメッセージが飛ばない。
GameObjectをDestroyしたら可能であればDetachChildrenすべし
UnityでGameObjectをDestroyすると即時に消されるわけではなく、Destroyを実行したフレームでは残っている。 単にGameObjectを消すだけならさほど問題ないが、 例えばNGUIのUITableで子オブジェクトを整列させているような時、消したはずの子GameObjectがくっついていてReposition()しても思うように整列されない、といったことが起こる。
そんな時、親のGameObjectで子を削除するのと同時にtransform.DetachChildrenしてあげると即親子関係が解かれるので新たに子を生成してReposition()すると想定通り動作する。
ただしDetachChildrenしてしまうと全ての子との関係が解かれてしまうので注意。
スクリプト上でTransform.parentを変更する時はスケール値が変わるので注意
例えば、PrefabをInstantiateしようと思った時
GameObject obj = Instantiate(prefab) as GameObject; // この時、objのlocalScaleは ( 1, 1, 1 )で、parentはrootになっている obj.transform.parent = this.transform; // この時、objのlocalScaleはparentに応じて変更されている obj.transform.localScale = Vector3.one; // こんな感じで直してあげる必要がある