黑魂 211深度优先搜索方法制作双手控制

发布时间 2023-07-22 17:56:47作者: dontpanic1703

创建一个新脚本TransformHelpers放进Scripts文件夹的Helper文件夹里

接下来要实现往Unity放进新的定义方法。

把TransformHelpers修改成:

 把这个hihi方法放进WeaponManager的start函数里:

 测试这个方法在运行的时候调用的过程。

接下来我们按照hihi方法的参数重新创建一个方法叫DeepFind(深度搜索)。

public static Transform DeepFind(this Transform parent,string targetName)
{
  foreach (Transform child in parent)       Transform里有IEnumerable可以把Transform的子级遍历出来,用parent作为参数,就代表物体,把物体的子级遍历出来。
  {
    Debug.Log(child.name);
  }
  return null;
}

然后把WeaponManager的hihi函数改成DeepFind,看看在ybot的组件里能不能找到good这个字符串。

 结果打印出来对应ybot的组件,因为两个ybot都绑定了WeaponManager脚本,开始执行都会运行这个DeepFind方法,把ybot下所有的子级都搜索并打印出来。

在TransformHelper的foreach里再加入一行代码:

 代表可以遍历子级里的子级,循环下去就相当于递归。遍历子级里子级的子级,直到找到目标物体。

 设定成找到ybot里的组件用来测试。成功!!!!!

所以可以通过这个方法,在WeaponManager里搜索对应的单个物体。