【unity】获取节点路径

一.应用背景:

在Unity开发过程中,有些时候我们需要获取从根节点到指定节点的路径,这里针对节点Transform进行扩展,返回由指定分隔符分割的完整路径:

二.核心源码:

基本思想:循环寻找父节点,并记录当前节点,直到父节点为空时,即到达根节点。

using UnityEngine;
public static class TransformExtension
{
    public static string GetRoute(this Transform transform, string splitter = ".")
    {
        var result = transform.name;
        var parent = transform.parent;
        while (parent != null)
        {
            result = $"{parent.name}{splitter}{result}";
            parent = parent.parent;
        }
        return result;
    }
}

三.测试结果:

针对上述扩展方法进行测试,测试源码如下:

using UnityEngine;
using UnityEditor;
public class Test : MonoBehaviour
{
    [MenuItem("GameObject/GetRout",priority =0)]
    static void GetRout()
    {
        var transform = Selection.activeTransform;
        var route = transform.GetRoute();
        Debug.Log(route);
    }
}

结果如下图:

【unity】获取节点路径_第1张图片

你可能感兴趣的:(【unity】获取节点路径)