[Unity] 都合のいいGameObjectを取得したい


GetComponent系で都合のいいのだけ取得したい

だったら、都合のいいGameObjectにコンポーネントを追加してしまいましょう。
ついでに、メモを残せるようにしておきましょう。
コードは単純に、下みたいので十分です。
public class Marking : MonoBehaviour
{
        [Tooltip("任意のメッセージを記述します")]
        public string Message = "";
}
これをGetComponent<Marking>系で取得すればいいだけです。
あとは、Messageで取捨選択しても良いでしょう。




そこら辺も簡単に使えるようにまとめたコードがこちら
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace Chigusa
{
/// <summary>
/// マーキング用の MonoBehaviour
/// </summary>
public class Marking : MonoBehaviour
{
[Tooltip("任意のメッセージを記述します")]
public string Message = "";
#region Static Functions
/// <summary>
/// 指定の対象から対象のメッセージがあるマーキングを取得します
/// </summary>
/// <param name="target">指定の対象</param>
/// <param name="searchMessage">検索するメッセージ</param>
/// <returns>結果</returns>
static Marking Get(GameObject target, string searchMessage)
{
var tempList = target.GetComponentsInChildren<Marking>(true);
foreach (var tempMarking in tempList)
{
if (tempMarking.Message == searchMessage)
return tempMarking;
}
return null;
}
/// <summary>
/// 指定の対象からマーキングが含まれるリストを取得します
/// </summary>
/// <param name="target">指定の対象</param>
/// <returns>結果</returns>
static Marking[] GetList(GameObject target)
{
return target.GetComponentsInChildren<Marking>(true);
}
/// <summary>
/// 指定の対象から対象のメッセージがあるマーキングのリストを取得します
/// </summary>
/// <param name="target">指定の対象</param>
/// <param name="searchMessage">検索するメッセージ</param>
/// <returns>結果</returns>
static Marking[] GetList(GameObject target, string searchMessage)
{
var resultList = new List<Marking>();
var tempList = target.GetComponentsInChildren<Marking>(true);
foreach (var tempMarking in tempList)
{
if (tempMarking.Message == searchMessage)
resultList.Add(tempMarking);
}
return resultList.ToArray();
}
#endregion
}
}
view raw Marking.cs hosted with ❤ by GitHub

Marking.Get(GameObject target, string searchMessage)

指定したメッセージのコンポーネントを探す

Marking.GetList(GameObject target)

Markingのあるコンポーネントをリストを探す

Marking.GetList(GameObject target, string searchMessage)

指定したメッセージのコンポーネントをリストで探す

0 件のコメント :

コメントを投稿