Repository: FlaxEngine/FlaxEngine
File: Source/Editor/Gizmo/TransformGizmo.cs (C#)

Code before:
        }

        /// <summary>
        /// Helper function, recursivily finds the Prefab Root of node or null
        /// </summary>
        /// <param name="node">The node from which to start</param>
        /// <returns></returns>
        public ActorNode GetPrefabRootInParent(ActorNode node)
        {
            if (!node.HasPrefabLink)
                return null;
            if (node.Actor.IsPrefabRoot)
                return node;
            else if (node.ParentNode is ActorNode parAct)
                return GetPrefabRootInParent(parAct);
            else
                return null;
        }

        /// <summary>
        /// Recursively walks up from the node up to ceiling node(inclusive) or selection(exclusive)
        /// </summary>
        /// <param name="node">The node from which to start</param>
        /// <param name="ceiling">The ceiling(inclusive)</param>
        /// <returns></returns>
        public ActorNode RecursiveWalkUpAndFindSomethingBeforeSelectedOrSupplied(ActorNode node, ActorNode ceiling)
        {
            if (node == ceiling)
                return node;
            if (node.ParentNode is ActorNode parAct)
            {
                if (Editor.Instance.SceneEditing.Selection.Contains(node.ParentNode))
                    return node;
                else
                    return RecursiveWalkUpAndFindSomethingBeforeSelectedOrSupplied(parAct, ceiling);
            }
            else
                return null;
        }

        /// <inheritdoc />
        public override void Pick()
        {
            // Ensure player is not moving objects
            if (ActiveAxis != Axis.None)
                return;

            // Get mouse ray and try to hit any object
            var ray = Owner.MouseRay;
            var view = new Ray(Owner.ViewPosition, Owner.ViewDirection);
            bool selectColliders = (Owner.RenderTask.View.Flags & ViewFlags.PhysicsDebug) == ViewFlags.PhysicsDebug;

Review comment (suggestion):
That's probably the longest method name I've ever seen 😂 

At the very least, we can drop the `Recursive`, since that's an implementation detail and replace the `Something` with `ActorNode`

Code after:
        }

        /// <summary>
        /// Helper function, recursivily finds the Prefab Root of node or null
        /// </summary>
        /// <param name="node">The node from which to start</param>
        /// <returns></returns>
        public ActorNode GetPrefabRootInParent(ActorNode node)
        {
            if (!node.HasPrefabLink)
                return null;
            if (node.Actor.IsPrefabRoot)
                return node;
            else if (node.ParentNode is ActorNode parAct)
                return GetPrefabRootInParent(parAct);
            else
                return null;
        }

        /// <summary>
        /// Recursively walks up from the node up to ceiling node(inclusive) or selection(exclusive)
        /// </summary>
        /// <param name="node">The node from which to start</param>
        /// <param name="ceiling">The ceiling(inclusive)</param>
        /// <returns></returns>
        public ActorNode WalkUpAndFindActorNodeBeforeSelection(ActorNode node, ActorNode ceiling)
        {
            if (node == ceiling)
                return node;
            if (node.ParentNode is ActorNode parAct)
            {
                if (Editor.Instance.SceneEditing.Selection.Contains(node.ParentNode))
                    return node;
                else
                    return WalkUpAndFindActorNodeBeforeSelection(parAct, ceiling);
            }
            else
                return null;
        }

        /// <inheritdoc />
        public override void Pick()
        {
            // Ensure player is not moving objects
            if (ActiveAxis != Axis.None)
                return;

            // Get mouse ray and try to hit any object
            var ray = Owner.MouseRay;
            var view = new Ray(Owner.ViewPosition, Owner.ViewDirection);
            bool selectColliders = (Owner.RenderTask.View.Flags & ViewFlags.PhysicsDebug) == ViewFlags.PhysicsDebug;