网络知识 娱乐 unity获取物件组件常用方法总结

unity获取物件组件常用方法总结

目录

 

一.利用脚本获取物体的方法

二.利用脚本获取组件的方法 

三.利用公开变量引用物体跟组件


 

一.利用脚本获取物体的方法

这里介绍两种方法

1.通过名称获取脚本

可以通过物体的名称直接获得物体,使用GameObject.Find()方法即可。

列如;我们需要在当前脚本,需要获得另外一个名为“object”的物体,具体内容如下

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5L2_5oiR5b-r5LmQMTM=,size_15,color_FFFFFF,t_70,g_se,x_16

此时Ob便获得Object这个物体,以及这个物体身上的所有组件。

这个方法有两个弊端。

1.GameObject.Find(),无法找到未激活的物体

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5L2_5oiR5b-r5LmQMTM=,size_8,color_FFFFFF,t_70,g_se,x_16

2.GameObject.Find()需要遍历场景的所有物体,从性能上看是十分低效的。

2.通过标签查找物体

可以通过物体的标签直接获得物体,使用GameObject.FindGameObjectWithTag()方法即可,可高效地查找物体。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5L2_5oiR5b-r5LmQMTM=,size_20,color_FFFFFF,t_70,g_se,x_16

二.利用脚本获取组件的方法 

 获得某个物体后,我们就可以通过该物体获得它的每一个组件。利用GetComponent()方法。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5L2_5oiR5b-r5LmQMTM=,size_16,color_FFFFFF,t_70,g_se,x_16

注意: 

  虽然Transform组件也可以用GetCompment()获得,但由于该组件太常见,因此可以通过transform字段访问到Transform组件。

并且,Unity为了方便,在同一物体上,从任何一个组件出发都可以直接获得其他组件,可以不需要先获得先获得游戏体。 

三.利用公开变量引用物体跟组件

首先在任意脚本,添加几个类型的变量。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5L2_5oiR5b-r5LmQMTM=,size_11,color_FFFFFF,t_70,g_se,x_16

然后查看Inspector窗口,脚本属性会多四个变量的编辑框,默认值为None(类型)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5L2_5oiR5b-r5LmQMTM=,size_7,color_FFFFFF,t_70,g_se,x_16 

我们只需要把需要的物体跟组件拖拽进去就可以,便可以引用。

注意:拖拽的物体一定要该目标变量的组件。