この記事でのバージョン
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を作って切り替えられるようにしています。
![]() |