unity查找子物体、子节点、获取子节点对象脚本,添加子节点脚本,添加父节点脚本
分享一个代码管理片段的代码,主要是用于查找子物体,控制子物体等等的。
静态代码片段,便于调用。
不做太多的解释,直接上代码,每个方法都有注释。
有任何问题直接留言,看到会回复 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查找子物体、子节点、获取子节点对象脚本,添加子节点脚本,添加父节点脚本相关推荐
- unity 查找所以物体_用Unity来实现一下绳子效果——Obi Rope插件介绍
(本文作者 @对马骑马使用炎拳 ) 今年年中的时候,<最后生还者2>引发了业界非常热烈的大讨论. 有关剧情.人物描绘的争议自然是最为集火的一环.可参看这里: 如何评价游戏<最后生还者 ...
- JavaScript 技术篇-js获取表格元素tr、th、td相对于父节点的索引。
rowIndex 可以获取 tr 相对于根节点所有 tr 的索引,会计算之前所有的 tr. sectionRowIndex 可以获取 tr 相在当前 table 下的索引. 以下面的第二个 tr 为例 ...
- Unity - UGUI,在脚本上给strecth设置相对父节点的布满方式
如图,我们在使用UGUI元素控件时,选择Hierachy视图中的UGUI元素,在Inspector中将会显示Strech的相对父节点布局方式,下图右下角是相对父节点布满的方式 那么,我们在脚本上怎么设 ...
- mysql递归查询所有上下节点_非递归打印二叉树的所有路径,保存父节点和孩子节点到底有啥差别...
题目解读 题目要求输出二叉树的所有路径(字符串形式),乍一看很简单,不就是二叉树的遍历嘛!其实不然,首先,我们用非递归的方式(C++)解决这道题(递归在产品代码中是不允许使用的,其次定位 bug 的时 ...
- unity 查找所以物体_【技术】不可思议之梦蝶制作人:如何使用Unity把游戏从PC移植到Switch...
5月11日,由Unity主办的行业开发者大会Unite Shanghai 2019在上海国际会议中心召开,作为推出过<鲤>.<不可思议之梦蝶>的天津队友游戏的制作人,李喆就分享 ...
- JS节点操作(1) - 父节点,子节点,兄弟节点
节点操作的作用 获取元素通常使用的两种方式: 1. 利用DOM提供的方法获取元素 document.getElementById() document.getElementsByTagName() d ...
- cocos子节点转父节点坐标 原理浅析(局部坐标转世界坐标同理)
在CCNode的类中,有一个得到 一个节点坐标系转换父亲坐标系的一个矩阵,节点内坐标乘以这个矩阵,就可以转换为在节点父节点中的坐标,方法名为: Mat4& Node::getNodeToPar ...
- EasyUI中tree选中父节点自动选中子节点,取消子节点自动取消父节点,子节点勾选完毕自动勾选父节点
今天有需求,将树设为具有全选功能 选中父节点自动全选子节点 全选状态下,当用户取消某一个子节点,自动取消父节点的勾选 未全选状态下,用户勾选全部子节点,自动勾选对应的父节点 感觉挺简单,实际写的时候才 ...
- 3ds Max 子物体的编辑
3ds Max 子物体的编辑 **一.将对象转化为可编辑多边形 ** 选中物体右键->convert to ->editable poly 二.子物体编辑-相关物体建造 (一)Vertex ...
- Unity查找游戏对象
GameObject.Find Transform.Find 1.GameObject.Find 通过名字(递归)或路径查找物体对象,直到查找到第一个符合条件的GameObject或者返回null G ...
最新文章
- 关于C#调用非托管DLL,报“内存已损坏的”坑,坑,坑
- 用命令行查看局域网的其他在线的ip
- 损失函数的意义和作用_哈佛CASTER | 基于化学子结构表征预测药物相互作用
- Python中sys模块详解
- 会计基础第一章模拟试题(1)
- mysql f参数_MySQL 数据类型
- CentOS安装高版本gcc
- 使用 Navicat Premium 将 sql server 的数据库迁移到 mysql 的数据库中
- 目标层准则层MATLAB,层次分析法-MATLAB
- 百度2019暑期实习计算机视觉岗位笔试题
- 规格参数查询后台代码实现
- 关于Html中jsp调用Android中方法无效的一点建议
- linux ctime 时间戳,Linux时间戳atime ctime mtime区别及相关命令
- The 4+1 view model
- 居家洁士扫地机器人_掌握核心技术扫地机器人品牌推荐,由利和石头扫地机器人哪个牌子好?...
- 【鉴权/授权】一步一步实现一个简易JWT鉴权
- C#基础加强(8)之委托和事件
- tf.acos_带有Python示例的math.acos()方法
- JdbcTemplate(操作数据库-查询返回对象、查询返回集合)
- php和mysql一起_PHP和MYSQL数据库合理且有效的结合在一起_MySQL