r2mods/ilspy_dump/ror2_csproj/RoR2/MemoizedGetComponent.cs

21 lines
422 B
C#

using UnityEngine;
namespace RoR2;
public struct MemoizedGetComponent<TComponent> where TComponent : Component
{
private GameObject cachedGameObject;
private TComponent cachedValue;
public TComponent Get(GameObject gameObject)
{
if (cachedGameObject != gameObject)
{
cachedGameObject = gameObject;
cachedValue = (gameObject ? gameObject.GetComponent<TComponent>() : null);
}
return cachedValue;
}
}