土屋つかさの技術ブログは今か無しか

土屋つかさが主にプログラミングについて語るブログです。

Unity Tips(2)

".mat"ファイルがショートカットとして認識されてしまう。

 マテリアルデータを格納する".mat"ファイルが「Microsoft Office Access Table Shortcut」に関連付けられていて拡張子が表示されない場合(TortorizeGitで操作できなくて困った)。

対応

 「コントロールパネル」>「プログラム」>「あるファイルの種類を特定のプログラムでオープン」で".mat"をエディタに関連付ける。

ユニティちゃんがピンク色になった時の対処

 ユニティちゃん(UnityChan_1_2_1.unitypackage)をResources配下にインポートし、"Resouces/UnityChan/Models/unitychan"プレハブを動的に生成する際、winでビルドするとモデルがピンク色に出力されてしまった時の対処

注意

 これ、根本的な修正になっているのかは分かりません(土屋の3Dプログラミングへの理解不足から来てるのかもしれないです)。ひとまずこれで治ったという話。

原因

 *.shaderファイルの中でCharaSkin.cgをインクルードする箇所がことごとくコンパイルエラーを吐いており、shaderが読み込まれないためにInternalErrorShaderが設定され、ピンク色になっている

対応

 各*.shaderファイルの該当箇所を以下のように修正する

//修正前
#include "CharaSkin.cg"
//修正後
#include "./CharaSkin.cg"

 ※モデルがピンク色になっていたら基本的にシェーダーか、シェーダーへの参照が壊れているとみて良い。参考→http://tsubakit1.hateblo.jp/entry/2017/03/30/090000

追記(2017/06/23)

 ユニティちゃんシェーダー (Unity 5.4/5.5β 対応版)が、上記のピンク化対応パッチらしい(shaderフォルダ内のreadme参照)。
 適用すると、"*.cg"の代わりに".cginc"ファイルがインクルード対象となり、上記の修正なしでも正常に表示される(既に上記の修正をしている場合は、一度シェーダーを再コンパイルする必要があるかもしれない)。

TortoriseGitにファイルを登録しても管理アイコンが出ない場合

 Unityとは直接関係ありませんが環境構築中に起きたこと。アイコンオーバーレイは全サービスを合わせて合計で15個までしか適用されないようで、Dropboxをインストール済みのマシンにTortoriseGitをインストールするとレジストリ上後ろに回されたTortoriseGitのアイコンオーバーレイがスキップされます(下記サイト参照)。

TortoiseGitでアイコンオーバーレイ icon overlayが表示されない 解決方法
https://urashita.com/archives/4535
TortoiseGitのアイコンオーバーレイが表示されないときの対処法3つ
http://shinten-dream.com/computer/49/

 土屋の環境ではキー名を変えた上でダブルクオーテーションで囲う方法で解決しました(レジストリエディタでの編集には管理者権限が必要。ご自身の責任でどうぞ)

Canvasについて(1)

 Render Modeを"Screen Scene - camera"にした時、Render Cameraをスクリプトから設定したい場合、Canvas.worldCameraに対象のカメラを設定する。

GameObject.Find("CanvasName").GetComponent<Canvas>().worldCamera = targetCamera;

参考:Unity4.6のuGUIのCanvasのRender Cameraをスクリプトで変更したい
https://ja.stackoverflow.com/questions/5008/unity4-6%E3%81%AEugui%E3%81%AEcanvas%E3%81%AErender-camera%E3%82%92%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%81%84