2014年3月30日日曜日

【Unity】Unity小ネタ② オブジェクトの検索

■オブジェクトの検索

C#にてオブジェクトを検索する方法として自分は主に以下の記述方法を使用しています。

①普通にオブジェクト名で検索
【C#】
var  targetGO = GameObject.Find("オブジェクト名");


②タグで検索
【C#】
var targetGOs = GameObject.FindGameObjectsWithTag  ("タグ名");


タグで検索をした場合、同じタグを持つ複数のオブジェクトがある場合は複数のオブジェクトが検索されます。
その場合の取得方法は以下のように行います。
(同じタグを持つオブジェクトを一括で削除する関数です。)


【C#】
/// <summary>
/// 特定のタグのゲームオブジェクトを一括削除
/// </summary>
public static void DestroyObjectWithTag(string name)
{
  var targetGOs = GameObject.FindGameObjectsWithTag(name);

  foreach (var target in targetGOs)
  {
  GameManager.Destroy(target);
  }
}



因みに検索はそこそこ処理が重いらしくUpdate()内などでは使用しないほうが良いらしいです。





0 件のコメント:

コメントを投稿