forked from Shardstone/trail-into-darkness
changed directory structure
This commit is contained in:
59
Packages/com.jovian.utilities/Runtime/GameObjectUtilities.cs
Normal file
59
Packages/com.jovian.utilities/Runtime/GameObjectUtilities.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using Object = UnityEngine.Object;
|
||||
|
||||
namespace Jovian.Utilities {
|
||||
public static class GameObjectUtilities {
|
||||
public static void DestroyGameObjectsOfType<T>() where T : MonoBehaviour {
|
||||
T[] objects = Object.FindObjectsOfType<T>();
|
||||
for (int i = 0; i < objects.Length; ++i) {
|
||||
Object.Destroy(objects[i].gameObject);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsGameObjectAChildOfGameObject(this GameObject targetGameObject, GameObject potentialParentGameObject) {
|
||||
if (targetGameObject == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Transform potentialParentTransform = potentialParentGameObject.transform;
|
||||
Transform checkTransform = targetGameObject.transform;
|
||||
do {
|
||||
if (checkTransform == potentialParentTransform) {
|
||||
return true;
|
||||
}
|
||||
|
||||
checkTransform = checkTransform.parent;
|
||||
} while (checkTransform != null);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool TryFindChildByName(this GameObject gameObject,
|
||||
string name,
|
||||
out GameObject childGameObject,
|
||||
bool includeInactive = false,
|
||||
bool allowPartialMatch = false,
|
||||
StringComparison stringComparison = StringComparison.Ordinal) {
|
||||
childGameObject = null;
|
||||
if (gameObject == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Transform[] children = gameObject.GetComponentsInChildren<Transform>(includeInactive);
|
||||
foreach (Transform child in children) {
|
||||
if (allowPartialMatch && child.name.Contains(name, stringComparison)) {
|
||||
childGameObject = child.gameObject;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!allowPartialMatch && child.name.Equals(name, stringComparison)) {
|
||||
childGameObject = child.gameObject;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user