ローカル環境の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; // こんな感じで直してあげる必要がある