Created
May 6, 2016 08:35
-
-
Save marcosecchi/98521e18dad00206a52a6c1b652c26f4 to your computer and use it in GitHub Desktop.
Check if the current selection is in the Unity3D Hierarchy Panel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using UnityEditor; | |
public class HierarchyUtils { | |
/// <summary> | |
/// Determines if the current selection in the Hierarchy view. | |
/// </summary> | |
/// <returns><c>true</c> if is selection in hierarchy; otherwise, <c>false</c>.</returns> | |
private static bool IsSelectionInHierarchy() { | |
Object[] objs = Selection.objects; | |
if(objs.Length == 0) return false; | |
GameObject go; | |
foreach(Object obj in objs) { | |
go = obj as GameObject; | |
if(go == null) return false; | |
if(!IsInScene(go)) return false; | |
} | |
return true; | |
} | |
/// <summary> | |
/// Determines if a GameObject is in the Scene. | |
/// </summary> | |
/// <returns><c>true</c> if the GameObject is in the Scene view; otherwise, <c>false</c>.</returns> | |
/// <param name="go">The Game Object.</param> | |
private static bool IsInScene(GameObject go) { | |
return go != null && (PrefabUtility.GetPrefabType(go).ToString().EndsWith("Instance") || PrefabUtility.GetPrefabType(go) == PrefabType.None); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment