UnityEditor.HandleUtility.FindSelectionBase C# (CSharp) Method

FindSelectionBase() static private method

static private FindSelectionBase ( GameObject go ) : GameObject
go UnityEngine.GameObject
return UnityEngine.GameObject
        internal static GameObject FindSelectionBase(GameObject go)
        {
            if (go != null)
            {
                Transform transform = null;
                switch (PrefabUtility.GetPrefabType(go))
                {
                    case PrefabType.PrefabInstance:
                    case PrefabType.ModelPrefabInstance:
                        transform = PrefabUtility.FindPrefabRoot(go).transform;
                        break;
                }
                for (Transform transform2 = go.transform; transform2 != null; transform2 = transform2.parent)
                {
                    if (transform2 == transform)
                    {
                        return transform2.gameObject;
                    }
                    if (AttributeHelper.GameObjectContainsAttribute(transform2.gameObject, typeof(SelectionBaseAttribute)))
                    {
                        return transform2.gameObject;
                    }
                }
            }
            return null;
        }

Usage Example

コード例 #1
0
		internal static GameObject PickGameObject(Vector2 position, bool selectPrefabRoot, GameObject[] ignore, GameObject[] filter)
		{
			int num;
			GameObject gameObject = HandleUtility.PickGameObjectDelegated(position, ignore, filter, out num);
			GameObject result;
			if (gameObject && selectPrefabRoot)
			{
				GameObject gameObject2 = HandleUtility.FindSelectionBase(gameObject) ?? gameObject;
				Transform activeTransform = Selection.activeTransform;
				GameObject y = (!activeTransform) ? null : (HandleUtility.FindSelectionBase(activeTransform.gameObject) ?? activeTransform.gameObject);
				if (gameObject2 == y)
				{
					result = gameObject;
				}
				else
				{
					result = gameObject2;
				}
			}
			else
			{
				result = gameObject;
			}
			return result;
		}
All Usage Examples Of UnityEditor.HandleUtility::FindSelectionBase