unity getcomponentsinchildren 翻船】的更多相关文章

今天使用GetComponentsInChildren, 老司机翻船.因为一直以来我使用这个函数,下意识的从来所有的相同component都是放在子节点下,本身节点肯定不会放一个相同的component,不然设计上肯定是有问题的.于是我自己一直也认为该函数所取得的component不包含节点所带的component(假设有一个相同的).我今天使用一个musicmanager类,该类在本身节点及子节点都挂载了多个audiosouce类似对象池,而本身的audiosource刚好是一直循环播放的,于…
using System.Collections; using System.Collections.Generic; using UnityEngine; public class GetComponent : MonoBehaviour { public Transform[] transforms; void Start() { transforms = GetComponentsInChildren<Transform>(true); } } GetComponentsInChildr…
1 Component.GetComponentsInChildren 和 GameObject.GetComponentsInChildren 一样吗?  API上解释一样. 2. //拿到游戏对象以及其所有子物体的DataStore(注意是所有子物体,不光是第一层,也有孙物体) DataStore[] temp_DataStoreArray = objs[i].GetComponentsInChildren<DataStore>();…
在实际项目中,我们经常要去查找一个节点下的某个子节点,但是子节点太多,或者每次我们都要去自己写GameObject.FindChald("xxx")实在是太过繁琐,那么这是后就可以用GetComponentsInChildren了 ,他返回的是要查找的这个节点下的所有子节点和要超找的对象本身的Transform数组,然后我们再用for循环遍历,便可以找到我们想要的了,废话不多说,我们看代码 public Transform FindChild(Transform parent, str…
如果想获取一级子节点 foreach (Transform child in this.transform) { Debug.Log(child.name); } 如果想获取所有子节点 foreach (Transform child in gameObject.GetComponentsInChildren<Transform>()) { Debug.Log(child.name); } 这样会包括所有带有transform属性的子节点. 在unityAPI中也有介绍 public clas…
(一)适用情况 当游戏主角进入特定的场景或者关卡,每个关卡需要加载不同位置的模型,道具等.这些信息需要先在unity编辑器里面配置好,一般由策划干这事,然后把这些位置道具信息保存在文件,当游戏主角进入后根据保存的文件信息加载模型道具.如 跑酷场景的金币 赛车赛道的道具 (二)实例文件格式 Json 需要导入SimpleJson 具体使用方法可以看我另外一篇<Unity游戏数据用Json保存>,有详细介绍 http://www.cnblogs.com/July7th/p/4808095.html…
前几天同事做了一个效果,希望在原本使用了遮罩组件 Mask 的技能图标(让技能图标变成圆形)上在添加一个置灰的功能,但问题来了:因为是动态根据游戏中玩家的条件才动态置灰,以修改 Mask 下子节点 Image 组件的材质来实现的,但是实际上怎么修改也不起作用,呈现出的效果都只停留在第一次运行时的样子. 一开始我也以为是 shader 的问题,修改的 property 没有生效,但是通过各种测试发现 shader 是已经修改成功的了.就是没有应用上,在查阅了各方资料无效果的情况下只能翻阅 unit…
听到过很多用Unity 3D开发游戏的程序员抱怨引擎效率太低,资源占用太高,包括我自己在以往项目的开发中也头疼过.最近终于有了空闲,可以仔细的研究一下该如何优化Unity 3D下的游戏性能.其实国外有不少有关U3D优化的资料,Unity官方的文档中也有简略的章节涉及这方面的内容,不过大多都是以优化美术资源为主,比如贴图的尺寸,模型静态及动态的batch以减少draw call,用lightmap替代动态光影,不同渲染模式在不同环境下的性能等等.鉴于此,加上美术资源方面的东西本人不是特别了解,所以…
下载与安装 下载地址 GitHub 安装过程1.下载最新版,这里, 解压缩,将Assets目录里的所有内容复制到你的工程中,对于最终产品,可以删除slua_src,例子,文档等内容,如果是开发阶段则无所谓.2.等待unity编译完毕,如果一切顺利的话,将出现slua菜单, 点击slua菜单中 All->Make 命令 手动生成针对当前版本的U3d接口文件.3.每次更新slua版本,务必记得clear all,然后make all,否则可能运行不正确 主要的内容包括 LuaState状态机对象执行…
使用 unity 做游戏开发时,有时需要在scroll view下使用粒子,但粒子是不会被 UIPanel 所裁剪的,本人提供了脚本 ParticleSystemClipper,用来处理这种情况.思路是,通过 UIPanel 的 finalClipRegion 换算成 unity3d 世界坐标系中的区域,然后传递到粒子的 shader 中进行裁剪.代码如下: using System; using UnityEngine; [RequireComponent(typeof(UIPanel))]…
版权声明:本文为博主原创文章,欢迎转载.请保留博主链接:http://blog.csdn.net/andrewfan 万向节死锁(Gimbal Lock)问题 上文中曾经说过,欧拉旋转的顺规和轴向定义,自然造就了"万向节死锁"问题.本文主要来探索它自然形成的原因. 陀螺仪 首先,我们来了解Gimbal 究竟是个什么玩意儿.下面来自维基百科中关于Gimbal的一段引述: 平衡环架(英语:Gimbal)为一具有枢纽的装置,使得一物体能以单一轴旋转.由彼此垂直的枢纽轴所组成的一组三只平衡环架…
在我们做项目的过程中 经常会有预设中出现空的脚本 例如: 导致的原因是因为 脚本的丢失 现在我们来做一个检查工程中有空脚本的预设工具 老规矩直接上代码 放到工程就能用 using UnityEngine; using UnityEditor; using System.IO; using System.Collections.Generic; public class PrefabTool : EditorWindow { [MenuItem("Prefab Tool/Check Missing…
GameObject  Note : gameObject 指的是当前挂着的对象. class in UnityEngine / Inherits from:Object     Description Base class for all entities in Unity scenes. Note: Many variables in the GameObject class have been removed. To access, for example GameObject.rende…
基本原理与实现 主要使用噪声和透明度测试,从噪声图中读取某个通道的值,然后使用该值进行透明度测试. 主要代码如下: fixed cutout = tex2D(_NoiseTex, i.uvNoiseTex).r; clip(cutout - _Threshold); 完整代码点这里 边缘颜色 如果纯粹这样镂空,则效果太朴素了,因此通常要在镂空边缘上弄点颜色来模拟火化.融化等效果. 1. 纯颜色 第一种实现很简单,首先定义_EdgeLength和_EdgeColor两个属性来决定边缘多长范围要显示…
从优化角度,Mesh需要合并. 从换装的角度(这里指的是换形状.换组成部件的换装,而不是挂点型的换装),都需要网格合并.材质合并.如果是人物的换装,那么需要合并SkinnedMeshRenderer,并重刷对应的骨骼列表.网格合并后对模型的渲染可以降低GPU的负担,但是经过测试发现,虽然网格合并了但是由于子物体网格的材质是不同的并没有降低DrawCall,如果把材质改成相同的,Unity自身会进行批处理合并,所以DrawCall就会减少!在MMO的游戏中,网格动态合并还是非常有必要的! 网格合并…
1.Event Function:事件函数   Reset() :被附加脚本时.在游戏物体的组件上按Reset时会触发该事件函数 Start() :在游戏初始化时会执行一次 Update() :每一帧都会运行这个方法 FixedUpdate(): 会在指定帧调用该方法多少次 LateUpdate(): 晚于Update的运行顺序,但是FPS和Update是一样的 Awake() Start() : 都是在游戏物体初始化运行一次,但是Awake的运行顺序高于Start的,并且只要脚本中存在Awak…
能搜到这的应该是被新的烘焙系统坑了少时间,4.x到5.x美术必须重新烘焙,关于美术的没什么说的,只有---重新烘焙! 新的烘焙系统,为了兼容5.x的多场景编辑功能,将烘焙信息从mesh全部挪到了一个中间件xxx.assets,这个资源文件在5.x烘焙完成后和光照贴图存放在一起,然而关于这个资源文件,我是查来查去没有找到任何接口可以访问. 只能百度谷歌,发现方案基本都是序列化,因为上面提到的烘焙信息没有在mesh中保存,而是一个鸡肋资源文件,发布时xxx.assets可以删了. 序列化哪些数据,在…
unity 有时候找路径太麻烦 写了一个自动生成脚本的工具 using System.Collections.Generic; using System.IO; using System.Text; using UnityEditor; using UnityEngine; public class Auto_BuildCode { private static string path_dic = Application.dataPath + "/Code"; private stat…
在前置篇中,基本上梳理了一下换装功能背后涉及到的美术工作流.但程序员嘛,功能终归是要落到代码上的.本文中会结合Unity提供的API及之前提到的内容来实现一个简单的换装功能.效果如下: (图1:最终效果展示) 资源导出规则 所有的换装实现都是和导出规则相对应的.先说一下我这个小例子的导出规则. 1.角色的主干部分,包括头,胳膊,大腿.整体导出作为一个基础蒙皮. 2.其他部分的蒙皮,手套,下装,衣服,头发.每一种样式都一个个单独导出. 3.从MAX中导出FBX资源时,要注意导出蒙皮时候,骨骼也要选…
前言 在看了uwa之前发布的<Unity项目常见Lua解决方案性能比较>,决定动手写一篇关于lua+unity方案的性能优化文. 整合lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法.然而作为一个重度ulua用户,我们踩过了很多的坑才将ulua上升到一个可以在项目中大规模使用的状态.事实上即使到现在lua+unity的方案仍不能轻易的说可以肆意使用,要用好,你需要知道很多. 因此,这篇文章是从一堆简单的优化建议里头,逐步挖掘出背后的原因.只有理解了原因,才能很清…
Unity中的输入管理器由Input类进行操控.官方文档地址:https://docs.unity3d.com/ScriptReference/Input.html 中文翻译的话可以在这里:http://www.ceeger.com/Script/Input/Input.html 这里只说几个易混淆的点. 既然已经有GetKey.GetKeyDown.GetKeyUp 以及 GetMouseButton.GetMouseButtonDown.GetMouseButtonUp,为什么还要有GetB…
[转]Unity网格合并_材质合并 原帖请戳:Unity网格合并_材质合并 写在前面: 从优化角度,Mesh需要合并. 从换装的角度(这里指的是换形状.换组成部件的换装,而不是挂点型的换装),都需要网格合并.材质合并.如果是人物的换装,那么需要合并SkinnedMeshRenderer,并重刷对应的骨骼列表. 示例: 1,新建两个Cube,和一个Cylinder.分别作为坦克的底盘(Cube_chassis).炮塔(Cube_turret).炮管(Cylinder_gun).如下图所示. 2,为…
Unity 处理预设中的中文 需求由来 项目接入越南版本 需要解决的文本问题 获取UI预设Label里面的中文(没被代码控制)提供给越南 Label里面的中文替换成越南文 解决流程 迭代获取Assets目录下所有文件 获取所有的.prefab预设文件 加载预设文件 获取预设下所有的UILabel组建 判断UILabel中的值是否为中文 把所有的中文实例化成文本 替换成越南文 保存实例化对象为预设文件 销毁实例化对象 实现代码 获取UI预设Label里面的中文 [MenuItem("检查预设中文并…
Unity游戏开发常用函数 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助理快速了解 Unity 开发中常用的一些基础函数为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 RotateAround -- 围绕某个点/对象旋转 2 LoadScene -- 载入场景 3 Gizmos -- 小物件 4 Normalize -- 向量 5 Relati…
Unity查找物体下的所有物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速理解 Unity 中查找对象下的所有物体为新手节省宝贵的时间,避免采坑! 1 GetComponentsInChildren () -- 获取物体下的所有物体 2 GameObject Active False -- 游戏对象关闭时 3 Solve -- 解决办法 支持 May…
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A: B: using System; using System.Runtime.CompilerServices; using UnityEngine.Scripting; namespace UnityEngine { /// <summary> /// <para>Behaviours are Components that can be enabled or disabl…
1 Application类 2 Camera类 3 GameObject类 4 HideFlags类 5 Mathf类 6 Matrix4x4类 7 Object类 8 Quaternion类 9 Random类 10 Rigidbody类 11 Time类 12 Transform类 13 Vector2类 14 Vector3类 1 Application类 using UnityEngine; using System.Collections; public class DataPath…
原帖请戳:Unity网格合并_材质合并 写在前面: 从优化角度,Mesh需要合并. 从换装的角度(这里指的是换形状.换组成部件的换装,而不是挂点型的换装),都需要网格合并.材质合并.如果是人物的换装,那么需要合并SkinnedMeshRenderer,并重刷对应的骨骼列表. 示例: 1,新建两个Cube,和一个Cylinder.分别作为坦克的底盘(Cube_chassis).炮塔(Cube_turret).炮管(Cylinder_gun).如下图所示. 2,为了测试换装,我们加入三个材质球,调整…
感觉自己抑郁变得更严重了,超级敏感,经常想崩溃大哭,睡眠超差,实在不想药物治疗,多看看书,多约约朋友,多出去走走. 来几句鸡汤吧,人一定要活得明白一点,任何关系都不要不清不楚,说不定最后受伤的就是自个.另外,内心尽量变得强大一点,这样世界便会美好很多. ok,吐槽到此,开始正题吧,今天说几个unity的常用知识点,最近博客更得比较少,好像更习惯用有道笔记. 1.GetComponentInChildren().GetComponentsInChildren() 包含自己和所有子对象   2.In…
Unity 中C#语言的一些基础用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Lerp -- 线性插值 2 LoadScene -- 载入场景 3 Gizmos -- 小物件 4 Normalize -- 向量 5 RelativeVelocity -- 相对速度 6 AudioSource -- 音频源 7 CameraFollow -- 相机跟随,插值 8 String Split --…