using System; using UnityEngine; namespace XRLib.Util { public static class ComponentExtension { public static Component GetOrAddComponent(this Transform mono, Type type) { if (mono.TryGetComponent(type, out var result)) { return result; } return mono.gameObject.AddComponent(type); } public static T GetOrAddComponent(this Transform mono) where T : Component { if (mono.TryGetComponent(out T result)) { return result; } return mono.gameObject.AddComponent(); } public static T GetOrAddComponent(this GameObject mono) where T : Component { if (mono.TryGetComponent(out T result)) { return result; } return mono.gameObject.AddComponent(); } } }