2023-11-06 01:17:23 +08:00
|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
namespace BITKit
|
|
|
|
{
|
|
|
|
public static class GameObjectExtensions
|
|
|
|
{
|
|
|
|
public static T GetOrAddComponent<T>(this GameObject gameObject) where T : Component
|
|
|
|
{
|
|
|
|
return gameObject.TryGetComponent<T>(out var t) ? t : gameObject.AddComponent<T>();
|
|
|
|
}
|
|
|
|
public static T RemoveComponent<T>(this GameObject gameObject) where T : Component
|
|
|
|
{
|
|
|
|
var t = gameObject.GetComponent<T>();
|
|
|
|
if (t is null) return null;
|
|
|
|
Object.Destroy(t);
|
|
|
|
return t;
|
|
|
|
}
|
2025-08-03 02:28:50 +08:00
|
|
|
|
|
|
|
public static int RemoveComponentsInChildren<T>(this GameObject gameObject) where T :Component
|
|
|
|
{
|
|
|
|
var count = 0;
|
|
|
|
foreach (var x in gameObject.GetComponentsInChildren<T>())
|
|
|
|
{
|
|
|
|
if (!x) continue;
|
|
|
|
Object.Destroy(x);
|
|
|
|
count++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return count;
|
|
|
|
}
|
2023-11-06 01:17:23 +08:00
|
|
|
}
|
|
|
|
}
|