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

(:3[kanのメモ帳]

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

Collider2Dを実機で可視化してみた【Unity】

Unity

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

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


はじめに

デフォルトの状態だとSceneView上でしか可視化されていないCollider2Dですが、

Gizmoを有効にすることでGameViewでも見えるようになります。


f:id:kan_kikuchi:20161004134620j:plain


ただし、SceneViewにしろGameViewにしろ、可視化するためには

確認したいオブジェクトをHierarchy上で選択している必要があります。

またGizomoを有効にしても、iPhoneなどの実機上で確認する事はできません。


なので、今回は実機上でCollider2Dを可視化してみた話です。

なお、Hierarchy上で選択していなくても表示されるため、

エディタ上での確認も楽になるかもしれません。


可視化の方法

可視化の方法はColliderに合わせて、LineRendererで線を引くだけです。


ちなみにLineRendererとは名前の通り、線を引くためのものです。

3D 空間にラインを描画するために使います。


LineRendererは点を指定すると、それを繋げた線を引いてくれるのですが、

線が曲がるように繋げると線が汚くなります。(Unity5.5からは綺麗らしい)


f:id:kan_kikuchi:20161004135052p:plain


なので今回は、1つのLineRendererでの2点は2つまでとし、

線の数だけLineRendererを生成しています。


なお、確認用の機能として作ったため、

負荷は特に気にしていないので利用の際は注意してください。


Collider2dVisualizationer

ではコードです。



上記のコード作成し、Resources直下にColliderRenedrerMaterialという

LineRendererの用のマテリアルを作成すれば準備完了です。


f:id:kan_kikuchi:20161005132957p:plain
f:id:kan_kikuchi:20161005133007p:plain


確認のため、Collider2dの付いたオブジェクトを複数配置し、

Collider2dVisualizationerの各メソッドを実行するボタンを配置してみます。


f:id:kan_kikuchi:20161005133037p:plain


なお、ボタンを押した時の処理を以下のとおり。

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 ();
  }
}


この状態で実行すると、可視化出来るようになります。


f:id:kan_kikuchi:20161005134326g:plain


なお、赤がtriggerがoffのもの、緑のものがonのものです。


Collider2Dの子にLineRendererを置いているので、Collider2Dが動いても大丈夫ですし、

Collider2Dが無効になったら、LineRendererも消えるようになっています。


f:id:kan_kikuchi:20161005135341g:plain


おわりに

Unity上では目視できるので、元々そんなに不便ではないですが、

実機上でも確認できると他の人はもちろん、自分のテストプレイも楽になると思います。


なお、現在制作中のピコンティアでは、テスト用のUIを作って切り替えられるようにしています。


f:id:kan_kikuchi:20161008083606g:plain