前言
根据传入的父节点和要查找的子节点名称,遍历父节点下面所有子节点进行名称对比,返回超找到的节点。
一、实现逻辑
using UnityEngine;
namespace ToolFrameWork
{
public static partial class UtilExtend
{
/// <summary>
/// 查找节点工具 无论多深都能找着
/// </summary>
/// <param name="trans"></param>
/// <param name="name"></param>
/// <returns></returns>
static public Transform UtilFind(this Transform trans, string name)
{
//Debug.LogError(trans.name);
if (trans.name == name)
{
return trans;
}
foreach (Transform child in trans)
{
Transform result = child.UtilFind(name);
if (result)
{
return result;
}
}
return null;
}
}
}
二、使用示例
将下面创建的Test脚本挂载到
using UnityEngine;
using ToolFrameWork;
public class Test : MonoBehaviour
{
public Transform parentNode;//父节点
private string nodeName = "childNode";//要找的子节点名称
void Start()
{
Transform childNodeTrans = parentNode.UtilFind(nodeName);
}
}
总结
这里需要注意父节点下的子节点名称不要有重复的!!!