読者です 読者をやめる 読者になる 読者になる

(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

QuaternionとVector3変換、Console文字化け、SetParent【Unity】


このエントリーをはてなブックマークに追加

Unity関連で記事のするほどじゃないけど、まとめておきたいモノを複数列挙する感じの記事です。
Tipsみたいなものなのでそれぞれに関係はありません。


QuaternionとVector3変換

Quaternionであるtransform.rotationを扱い易いようにVector3に変換する方法と

Vector3をQuaternionに変換する方法です。

//Quaternion→Vector3
Vector3 vec3         = qua.eulerAngles;

//Vector3→Quaternion
Quaternion.Euler qua = Quaternion.Euler(vec3);


Quaternionのまま扱う人っているのかな…


Console文字化け

Debug.Log等でConsoleに表記した日本語が文字化けする場合、下記の

AssetPostprocessUTF8Encode.cs

を使わせてもらうと解決する場合があります。


http://debuglog.tumblr.com/post/26550984743/utf-8


スクリプトファイルの文字コードが問題のようです。


SetParent

Unity4.6からSetParentという関数が追加されたようです。



SetParentはそのオブジェクトにParentを登録し、子オブジェクトに出来ます。

Hierarchyで見ると、▼の下に置くのと同じです。


f:id:kan_kikuchi:20150420072914p:plain


従来のやり方と、SetParentを使ったやり方は以下の通りです。

//childObjectとparentObjectはGameObject

//従来のやり方
childObject.transform.parent = parentObject.transform;

//SetParentを使ったやり方
childObject.transform.SetParent( parentObject.transform, true);


SetParentの第二引数でワールド座標を維持するかを設定できます。


これの何が嬉しいかと言うと、従来のやり方ではparentを設定する時に、

parentのTransformに合わせて子オブジェクトのローカル座標が変更されていたため、

ローカル座標を維持したい場合はさらに処理が必要でした。


SetParentは第二引数をfalseにするだけでローカル座標を維持出来ます。