この記事でのバージョン
Unity 5.4.0f3
はじめに
デフォルトの状態だとSceneView上でしか可視化されていないCollider2Dですが、
Gizmoを有効にすることでGameViewでも見えるようになります。
ただし、SceneViewにしろGameViewにしろ、可視化するためには
確認したいオブジェクトをHierarchy上で選択している必要があります。
またGizomoを有効にしても、iPhoneなどの実機上で確認する事はできません。
なので、今回は実機上でCollider2Dを可視化してみた話です。
なお、Hierarchy上で選択していなくても表示されるため、
エディタ上での確認も楽になるかもしれません。
可視化の方法
可視化の方法はColliderに合わせて、LineRendererで線を引くだけです。
ちなみにLineRendererとは名前の通り、線を引くためのものです。
3D 空間にラインを描画するために使います。
LineRendererは点を指定すると、それを繋げた線を引いてくれるのですが、
線が曲がるように繋げると線が汚くなります。(Unity5.5からは綺麗らしい)
なので今回は、1つのLineRendererでの2点は2つまでとし、
線の数だけLineRendererを生成しています。
なお、確認用の機能として作ったため、
負荷は特に気にしていないので利用の際は注意してください。
Collider2dVisualizationer
ではコードです。
上記のコード作成し、Resources直下にColliderRenedrerMaterialという
LineRendererの用のマテリアルを作成すれば準備完了です。
確認のため、Collider2dの付いたオブジェクトを複数配置し、
Collider2dVisualizationerの各メソッドを実行するボタンを配置してみます。
なお、ボタンを押した時の処理を以下のとおり。
using UnityEngine; using System.Collections; public class Collider2dVisualizationTest : MonoBehaviour { /// <summary> /// レンダラーを表示 /// </summary> public void On(){ Collider2dVisualizationer.IsEnabled = true; } /// <summary> /// レンダラーを非表示 /// </summary> public void Off(){ Collider2dVisualizationer.IsEnabled = false; } /// <summary> /// コライダーを元にレンダラーを作成 /// </summary> public void Create(){ Collider2dVisualizationer.CreateLineRenderer (); } /// <summary> /// 作成したレンダラーを削除 /// </summary> public void Delete(){ Collider2dVisualizationer.DeleteLineRenderer (); } }
この状態で実行すると、可視化出来るようになります。
なお、赤がtriggerがoffのもの、緑のものがonのものです。
Collider2Dの子にLineRendererを置いているので、Collider2Dが動いても大丈夫ですし、
Collider2Dが無効になったら、LineRendererも消えるようになっています。
おわりに
Unity上では目視できるので、元々そんなに不便ではないですが、
実機上でも確認できると他の人はもちろん、自分のテストプレイも楽になると思います。
なお、現在制作中のピコンティアでは、テスト用のUIを作って切り替えられるようにしています。