分享一个代码管理片段的代码,主要是用于查找子物体,控制子物体等等的。

静态代码片段,便于调用。

不做太多的解释,直接上代码,每个方法都有注释。

有任何问题直接留言,看到会回复 QQ群 207019099 备注“CSDN 查找子物体”

 /// <summary>/// 查找子物体/// </summary>/// <param name="parent"></param>/// <param name="childName"></param>/// <returns></returns>public static Transform FindChild(Transform parent, string childName){Transform child = parent.Find(childName);if (child != null)return child;for (int i = 0; i < parent.childCount; i++){child = FindChild(parent.GetChild(i), childName);if (child != null)return child;}return null;}/// <summary>/// 查找子物体/// </summary>/// <typeparam name="T"></typeparam>/// <param name="parent"></param>/// <param name="childName"></param>/// <returns></returns>public static T FindChild<T>(Transform parent, string childName){Transform child = FindChild(parent, childName);if (null != child)return child.GetComponent<T>();elsereturn default(T);}/// <summary>/// 查找子节点对象/// 内部使用“递归算法”/// </summary>/// <param name="goParent">父对象</param>/// <param name="chiildName">查找的子对象名称</param>/// <returns></returns>public static Transform FindTheChildNode(GameObject goParent, string chiildName){Transform searchTrans = null;                   //查找结果searchTrans = goParent.transform.Find(chiildName);if (searchTrans == null){foreach (Transform trans in goParent.transform){searchTrans = FindTheChildNode(trans.gameObject, chiildName);if (searchTrans != null){return searchTrans;}}}return searchTrans;}/// <summary>/// 获取子节点(对象)脚本/// </summary>/// <typeparam name="T">泛型</typeparam>/// <param name="goParent">父对象</param>/// <param name="childName">子对象名称</param>/// <returns></returns>public static T GetTheChildNodeComponetScripts<T>(GameObject goParent, string childName) where T : Component{Transform searchTranformNode = null;            //查找特定子节点searchTranformNode = FindTheChildNode(goParent, childName);if (searchTranformNode != null){return searchTranformNode.gameObject.GetComponent<T>();}else{return null;}}/// <summary>/// 给子节点添加脚本/// </summary>/// <typeparam name="T"></typeparam>/// <param name="goParent">父对象</param>/// <param name="childName">子对象名称</param>/// <returns></returns>public static T AddChildNodeCompnent<T>(GameObject goParent, string childName) where T : Component{Transform searchTranform = null;                //查找特定节点结果//查找特定子节点searchTranform = FindTheChildNode(goParent, childName);//如果查找成功,则考虑如果已经有相同的脚本了,则先删除,否则直接添加。if (searchTranform != null){//如果已经有相同的脚本了,则先删除T[] componentScriptsArray = searchTranform.GetComponents<T>();for (int i = 0; i < componentScriptsArray.Length; i++){if (componentScriptsArray[i] != null){Destroy(componentScriptsArray[i]);}}return searchTranform.gameObject.AddComponent<T>();}else{return null;}//如果查找不成功,返回Null.}/// <summary>/// 给子节点添加父对象/// </summary>/// <param name="parents">父对象的方位</param>/// <param name="child">子对象的方法</param>public static void AddChildNodeToParentNode(Transform parents, Transform child){child.SetParent(parents, false);child.localPosition = Vector3.zero;child.localScale = Vector3.one;child.localEulerAngles = Vector3.zero;}

unity查找子物体、子节点、获取子节点对象脚本,添加子节点脚本,添加父节点脚本相关推荐

  1. unity 查找所以物体_用Unity来实现一下绳子效果——Obi Rope插件介绍

    (本文作者 @对马骑马使用炎拳 ) 今年年中的时候,<最后生还者2>引发了业界非常热烈的大讨论. 有关剧情.人物描绘的争议自然是最为集火的一环.可参看这里: 如何评价游戏<最后生还者 ...

  2. JavaScript 技术篇-js获取表格元素tr、th、td相对于父节点的索引。

    rowIndex 可以获取 tr 相对于根节点所有 tr 的索引,会计算之前所有的 tr. sectionRowIndex 可以获取 tr 相在当前 table 下的索引. 以下面的第二个 tr 为例 ...

  3. Unity - UGUI,在脚本上给strecth设置相对父节点的布满方式

    如图,我们在使用UGUI元素控件时,选择Hierachy视图中的UGUI元素,在Inspector中将会显示Strech的相对父节点布局方式,下图右下角是相对父节点布满的方式 那么,我们在脚本上怎么设 ...

  4. mysql递归查询所有上下节点_非递归打印二叉树的所有路径,保存父节点和孩子节点到底有啥差别...

    题目解读 题目要求输出二叉树的所有路径(字符串形式),乍一看很简单,不就是二叉树的遍历嘛!其实不然,首先,我们用非递归的方式(C++)解决这道题(递归在产品代码中是不允许使用的,其次定位 bug 的时 ...

  5. unity 查找所以物体_【技术】不可思议之梦蝶制作人:如何使用Unity把游戏从PC移植到Switch...

    5月11日,由Unity主办的行业开发者大会Unite Shanghai 2019在上海国际会议中心召开,作为推出过<鲤>.<不可思议之梦蝶>的天津队友游戏的制作人,李喆就分享 ...

  6. JS节点操作(1) - 父节点,子节点,兄弟节点

    节点操作的作用 获取元素通常使用的两种方式: 1. 利用DOM提供的方法获取元素 document.getElementById() document.getElementsByTagName() d ...

  7. cocos子节点转父节点坐标 原理浅析(局部坐标转世界坐标同理)

    在CCNode的类中,有一个得到 一个节点坐标系转换父亲坐标系的一个矩阵,节点内坐标乘以这个矩阵,就可以转换为在节点父节点中的坐标,方法名为: Mat4& Node::getNodeToPar ...

  8. EasyUI中tree选中父节点自动选中子节点,取消子节点自动取消父节点,子节点勾选完毕自动勾选父节点

    今天有需求,将树设为具有全选功能 选中父节点自动全选子节点 全选状态下,当用户取消某一个子节点,自动取消父节点的勾选 未全选状态下,用户勾选全部子节点,自动勾选对应的父节点 感觉挺简单,实际写的时候才 ...

  9. 3ds Max 子物体的编辑

    3ds Max 子物体的编辑 **一.将对象转化为可编辑多边形 ** 选中物体右键->convert to ->editable poly 二.子物体编辑-相关物体建造 (一)Vertex ...

  10. Unity查找游戏对象

    GameObject.Find Transform.Find 1.GameObject.Find 通过名字(递归)或路径查找物体对象,直到查找到第一个符合条件的GameObject或者返回null G ...

最新文章

  1. 关于C#调用非托管DLL,报“内存已损坏的”坑,坑,坑
  2. 用命令行查看局域网的其他在线的ip
  3. 损失函数的意义和作用_哈佛CASTER | 基于化学子结构表征预测药物相互作用
  4. Python中sys模块详解
  5. 会计基础第一章模拟试题(1)
  6. mysql f参数_MySQL 数据类型
  7. CentOS安装高版本gcc
  8. 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中
  9. 目标层准则层MATLAB,层次分析法-MATLAB
  10. 百度2019暑期实习计算机视觉岗位笔试题
  11. 规格参数查询后台代码实现
  12. 关于Html中jsp调用Android中方法无效的一点建议
  13. linux ctime 时间戳,Linux时间戳atime ctime mtime区别及相关命令
  14. The 4+1 view model
  15. 居家洁士扫地机器人_掌握核心技术扫地机器人品牌推荐,由利和石头扫地机器人哪个牌子好?...
  16. 【鉴权/授权】一步一步实现一个简易JWT鉴权
  17. C#基础加强(8)之委托和事件
  18. tf.acos_带有Python示例的math.acos()方法
  19. JdbcTemplate(操作数据库-查询返回对象、查询返回集合)
  20. php和mysql一起_PHP和MYSQL数据库合理且有效的结合在一起_MySQL

热门文章

  1. 作为一名35岁的测试人,拿我的经历给焦虑的朋友们一点借鉴。
  2. 动态内存分配与静态内存分配
  3. matlab中偶分量怎么表示,如何在matlab中画出一个函数的奇分量偶分量
  4. Filecoin - Trapdoor团队发现PoREP漏洞
  5. 12 - 符言第十二
  6. 原生JS添加节点的方法
  7. 你需要学会站出来,不要指望会有人为你说话。
  8. 为什么有人可以在屎一样混乱的几千行代码里加功能?不重构能驾驭屎山吗?...
  9. 内是不是半包围结构_半包围结构的有哪些字
  10. 2021-2025年中国净包装行业市场供需与战略研究报告