
Unity可以通过GetChild功能快速获取到物体或子物体的。
*** 作步骤:
1、打开Unity,新建一个工程;
2、在场景中,新建一个“GameObject”,在其下再新建一个“Cube”和“Sphere”,适当调整页面的布局;
3、把“GameObject”下的子物体“Sphere”隐藏;
4、在工程中,新建一个脚本“GetChildTest”,双击脚本或者右键“OpenC#Project”打开脚本;
5、在“GetChildTest”脚本上编写代码,首先设置一个变量获取对象,然后在Update函数里按下“A”键,打印第一个子物体的名称,按下“S”键,打印第二个子物体的名称,并显示该物体;
6、脚本编译正确,回到Unity界面,把脚本赋给“GameObject”,并把“GameObject”赋给脚本对应变量;
9、运行场景,按下“A”“S”键,控制台console打印信息,并且“Sphere”显示就可以了。
Unity3d中要对对象进行 *** 作必须首先去获取得到场景中的对象,那么弄清除获取对象的小细节就能够事半功倍
工具/原料
Unity3d和其内置的编译器
方法/步骤
在层级面板中选择多个对象相同的部分在监听器面板中给显示出来并且批量 *** 作
在Untiy3d的层级面板中创建多个对象并有复杂的父子级关系
在EmptyObject上挂载的C#脚本来通过GameObject的(静态的方法)Find()的对象名称获取G1对象,通过获取G1对象的直接父节点对象打印输出信息
分别通过EmptyObject挂载C#和Cube没有挂载C# 的GameObject 静态方法find()的元素目录(精确指定对象)获取一个指定的对象,获取的对象分为隐藏和显示两种情况
在EmptyObject上挂载的C#脚本通过transform(公共的方法)find()的对象的名称获分别获取G1,G5和G6。结果只能够获取挂载C#的对象的直接子节点对象
分别通过EmptyObject挂载C#和Cube没有挂载C# 的transform公共方法find()的元素目录(精确指定对象)获取一个指定的对象,获取的对象分为隐藏和显示两种情况
7
总结:通过GameObject的静态的find(),对象的名称去查找一个对象从整个层级面板中去匹配一个对象忽略掉目录结构的多少和是否对象挂载了该 *** 作的C#脚本,但最后获取的对象可能并不是我们想要的,如果查找的对象被隐藏则找不到通过名称所匹配的对象;通过GameObject的静态的find()对象的目录基本去定位获取对象时一种精确匹配且是不管该匹配的对象是否被隐藏。--------------通过transform的公共find()方法且是对象的名称来匹配的只能够所编译的C#一定是挂载到被查找的对象上面且是找其直接子节点对象(非多级子对象),目录查找就忽略掉了多级别的子节点对象。
先制作一个天空盒材质,然后有两种方法添加
一个是在setting——renderSetting中,添加到skybox那里,这样的话这个场景都显示这个天空盒
另一个方法是在camera中添加一个skybox组件,之后添加天空盒就行了
以上就是关于unity怎么获取物体全部的内容,包括:unity怎么获取物体、Unity 怎么获取场景中顶级节点的所有GameObject、怎么解决用Unity开发的Oculus Rift游戏DEMO时遇到天空盒重影问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)