月別アーカイブ: 2013年5月

[Unity3d]スクリプトファイルのデフォルト文字コードの指定

前回のポストで述べた方法ではWindows版のデフォルトの文字コードは変更されない。
変更してもUnityで生成する限りは元に戻るとのこと。

[wp_ad_camp_1]

解決策は次のリンクの通り。
DEBUG.LOG::スクリプトファイルのutf-8変換

開発ツール徹底攻略 (WEB+DB PRESS plus)

[Unity3d]プロジェクトを開始時する前にしておきたいソースファイルの文字コードの設定

プロジェクトの途中、いろんな環境で作業しているスタッフが混在していたり、スタッフが途中で増員すると環境が一人だけ違っていたりする事がある。特にコミットされたファイルの文字コードが違っていたりすると後で変更することは可能だが、svnのdiffが効かなくなったりblameで変遷を追えなくなる。

とはいえ、Unityで生成されるファイルはデフォルトでUtf-8なので、これ以外を使おうとする場合はコミット前に毎度確認しなければならなくなる。

そういった事態を回避する為に、予め特定の文字コードでファイルが生成されるように設定しておくと後々の不幸な出来事が無くなるのでメモしておく。

[wp_ad_camp_1]

親ファイル

新規に生成されるファイルは特定のファイルをコピーしただけになるので、親ファイルを特定して変更すればすべて解決する。

Environment3XMac

  • /Applications/Unity/Unity.app/Content/Resources/NewBehaviourScript.boo
  • /Applications/Unity/Unity.app/Content/Resources/NewBehaviourScript.cs
  • /Applications/Unity/Unity.app/Content/Resources/NewBehaviourScript.js
  • /Applications/Unity/Unity.app/Content/Resources/NewShader.shader

NewBehaviourScript.csとかjsとかbooとかshaderとかのファイルがあるのでこれを書き換えておく。
生成時にこれがまるっとコピペされるので署名等も入れておくと便利。

ちなみにこれらは3.xの場合。

4.x以降の場合

Environment4XMac

ファイルは.txtとして完全にテキストファイル化している。さらに、環境変数っぽいものも使えるようで、これを駆使して様々な記述ができそうではある。

Sublime Text 2 ならFileから変更が可能。
EnvironmentEncodeMac

Windows版の場合

3.xについては以下の通り。
EnvironmentFileDir_mac

  • Unity/Data/Editor/Resources/NewBehaviourScript.boo
  • Unity/Data/Editor/Resources/NewBehaviourScript.cs
  • Unity/Data/Editor/Resources/NewBehaviourScript.js
  • Unity/Data/Editor/Resources/NewShader.shader

4.xについては様々な問題により調査してません。が、多分Mac版同様の構成になってると思われるので次の単語で検索すると出てきそう。
– 80-Javascript-NewBehaviourScript.js.txt
– 81-C# Script-NewBehaviourScript.cs.txt
– 82-Boo Script-NewBehaviourScript.boo.txt
– 83-Shader-NewShader.shader.txt
– 84-Compute Shader-NewComputeShader.compute.txt

※最後のファイルは何なんでしょう…。はやく4.x環境に完全以降したい!

注意

UnityのTextAssetはiOSむけにコンパイル後、UTF-16withBOMのファイルを読み込ませてパースしようとすると、BEだろうがLEだろうがパースエラーになって落ちる。

Microsoft Windows 8 (DSP版) 64bit 日本語(新規インストール用)

Unity+NGUIで3Dオブジェクトに2D表示を行う

下準備・用意するもの

  • UISpriteオブジェクトを用意
  • 2Dカメラ(NGUIから Create New UI で作ったやつ)
  • 3D空間のカメラ(mainカメラ)
  • 3D空間のブジェクト

サンプル

gist

やってること

  1. 3Dカメラでワールド座標からスクリーン上の座標に変換
  2. 1の値を別のカメラのスクリーン座標上に変換
  3. 2D上に表示させたいアイテムのx,y座標だけ2で得た座標を上書き

※zは描画順やカメラの有効射程から外れるので無視。

ポイント

UISpriteは bottom に原点がくるように指定する。

bottomにすると原点が中央下部になるので、3Dオブジェクトのちょい上にあらかじめ表示が可能になる。

Spriteオブジェクトが乗ったパネルオブジェクトをPoint2DのplaneObjectに参照させる

そうするとパネル内で表示物を切り替えたりするときに便利だから。

ゲームメカニクス  おもしろくするためのゲームデザイン (ゲームデベロッパー)

のめりこませる技術 ─誰が物語を操るのか