using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;
using UnityObject = UnityEngine.Object;
namespace VketCloudGUITools.Utilities
{
public static class TransformUtility
{
///
/// すべての子孫を取得
///
///
public static IEnumerable GetAllDecendants(this Transform transform)
{
foreach (Transform child in transform)
{
yield return child;
foreach (Transform decendant in child.GetAllDecendants())
{
yield return decendant;
}
}
}
}
public static class ComponentUtility
{
///
/// RequireComponent指定されたコンポーネントを取得する。
/// がnullならば検索され、そうでなければ継続使用される。
///
///
/// 対象コンポーネントが破損/階層移動することは考慮しない。
///
///
///
/// コンポーネント取得結果
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static TRecuireComponent GetRequiredComponent(this Component component, ref TRecuireComponent requiredComponent)
{
if (requiredComponent == null)
{
requiredComponent = component.GetComponent();
}
return requiredComponent;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static TRecuireComponent GetRequiredComponentInParent(this Component component, ref TRecuireComponent requiredComponent)
{
if (requiredComponent == null)
{
requiredComponent = component.GetComponentInParent();
}
return requiredComponent;
}
}
}