| 123456789101112131415161718192021222324252627282930313233 |
- using System;
- namespace UnityEngine.UI.Extensions
- {
- public static class ExtentionMethods
- {
- public static T GetOrAddComponent<T>(this GameObject child) where T : Component
- {
- T result = child.GetComponent<T>();
- if (result == null)
- {
- result = child.AddComponent<T>();
- }
- return result;
- }
- public static bool IsPrefab(this GameObject gameObject)
- {
- if (gameObject == null)
- {
- throw new ArgumentNullException(nameof(gameObject));
- }
- return
- !gameObject.scene.IsValid() &&
- !gameObject.scene.isLoaded &&
- gameObject.GetInstanceID() >= 0 &&
- // I noticed that ones with IDs under 0 were objects I didn't recognize
- !gameObject.hideFlags.HasFlag(HideFlags.HideInHierarchy);
- // I don't care about GameObjects *inside* prefabs, just the overall prefab.
- }
- }
- }
|