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

(:3[kanのメモ帳]

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

DestroyImmediate、マルチタッチ無効、ローカルとワールド座標の変換【Unity】

Unity

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

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

この記事でのバージョン
Unity 5.1.0f3 Personal


DestroyImmediate

何かを破棄する場合、Destroyを使う事が多いですが、

Destroyはすぐに破棄される訳では無く、破棄しようとしたフレーム中は消えていません。



すぐに破棄したい場合は以下のようにDestroyImmediateを使います。

//現フレーム中は生存?
Destroy (this);

//すぐ破棄
DestroyImmediate (this);


Destroyで破棄したつもりになってバグを引き起こすという事も結構あるので、

Destroyを使う際には十分注意が必要です。


マルチタッチ無効

マルチタッチを無効にしたい場合はInput.multiTouchEnabledを使います。

//マルチタッチ無効
Input.multiTouchEnabled = false;

Unity - スクリプトリファレンス:


デフォルトでは有効になっています。


ローカルとワールド座標の変換

ローカル→ワールド座標の変換にはtransform.TransformPoint

ワールド→ローカル座標の変換にはtransform.InverseTransformPoint

を使います。

//ローカル→ワールドlocalPos(Vector3)がローカル座標
Vector3 worldPos = transform.TransformPoint (localPos);
//ワールド→ローカル座標の変換 worldPos(Vector3)がワールド座標
Vector3 localPos = transform.InverseTransformPoint (worldPos);

Unity - スクリプトリファレンス: