Unity で importing small assets と出て起動しなくなる

2DToolKitのサンプルプロジェクトを開いてから、「importing small assets」のプログレスが消えず

プロジェクトを開けなくなってしまったが、以下で解決。

1. alt を押しながら Unity を起動

2. 空のプロジェクトを適当に新規作成し、2D ToolKitをインポート

3. メニューの「2Dtoolkit」>「Preferences」を選択し、「Auto Rebuild」のチェックを外す

4. 上記設定さえ出来れば、空のプロジェクトは保存しないで後で消してしまって良い

5. OpenProject で起動しなくなっていたプロジェクトを開きなおして解決

GoogleAppEngine でパスワードが合っているのに違うと言われる

久々に

appcfg.py download_app -A -V

コマンドで、プロジェクトのソースを引っ張ってこようと思った時のこと。

絶対合っているのにユーザーIDかパスが違うといって蹴られる。

3回間違えるとリトライさせてもらえなくなるが、その際システムクロックも違うと言われて完全迷子。

結局、ブラウザでそのアカウントにログイン>二重認証を有効にする設定を行う(要携帯メールアドレス)

その後、設定>セキュリティ>アプリパスワード で「その他」「GoogleAppEngine」のように選択&入力しパスを作成

そのパスで再度コマンドからログインすると解決した。

Unity MonoDevelopで変なビルドエラーが出る

NGUI や 2DToolkit、WWW などさっきまで動いていたクラス名がどどっとエラーになってコンパイルされた時は、

MonoDevelop のビルドから一度クリーンをし終了する。

次に Unity のメニューから Assets > Sync MonoDevelop Project から

MonoDevelop を起動してやると大体直る。

C# で SJIS を UTF-8 にエンコードする方法

今回は Unity でテキスト(ShiftJIS)を読み込んだけど、UTF-8にしたかったというケースでの例
byte[] loadData;
   
using(FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read)){ 
 loadData = new byte[fileStream.Length];
 fileStream.Read(loadData , 0, loadData .Length);
}

Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");
string sjisstr = sjisEnc.GetString(loadData);
byte[] bytesData = System.Text.Encoding.UTF8.GetBytes(sjisstr);
Encoding utf8Enc = Encoding.GetEncoding("UTF-8");
string utf = utf8Enc.GetString(bytesData);

Debug.Log ("Test = " + utf);

Texture の Tiling と Offset についてのメモ

Tiling は、テクスチャ全体を何枚表示するかを設定する。

X も Y も 2 とすれば、テクスチャ全体が縦横 2 回繰り返され計 4 枚に見える。

逆に X と Y を 0.5 とすれば、左下から半分までの表示となる。


スプライトのような 1 枚をアトラスとして、一部を切り出し UV をセットしたい場合は、

そのスプライトサイズに見合った値を入れる。

例)

128 x 128 のテクスチャに 16 x 16 ピクセルが 1 スプライトのアトラスを作った場合、

スプライトは、横 8 パターン 縦 8 パターン存在する事になる。

ここで、左から3つめ、上から1つめ(下から7つめ)のスプライトのUVをオフセットとタイリングで設定したい場合は、

Tiling は、 XY ともに 0.125 (1 / 横スプライト数8、縦も同様)

Offset は、 X = 0.25 (0.125*2)、 Y = 0.75 (0.125 * 6) となる。

オフセットは左下が原点なので Y を注意すること。