Unityで「単純にコンポーネントを持っているかチェックしたいな」みたいなことがあって、ただ「GetComponentしてnullチェック」とか「TryGetComponentするけど結果は破棄」はなんか嫌という潔癖なところがあるので、HasCompoent関数を実装しました。
using UnityEngine;
public static class GameObjectExtensions {
public static bool HasComponent<T> (this GameObject gameObject) {
return gameObject.TryGetComponent(out T _);
}
public static bool HasComponent<T> (this Component component) {
return component.TryGetComponent(out T _);
}
}
HasCompoentという名前がとても分かりやすくて気に入っています。
// Moverコンポーネントを持っているかチェックする
if (gameObject.HasComponent<Mover>()) {
// 何かする
}