跳转到主要内容

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

demi 提交于

<a href="https://blog.csdn.net/maojiaoliang/article/details/123989112"><font color="#9a9a9a">本文来源:CSDN - 学习使我快乐13</font></a>

<hr>

<font size="3" color="#c200ff"><strong>一、利用脚本获取物体的方法</strong></font>

这里介绍两种方法

<strong>1. 通过名称获取脚本</strong>

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

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

<img src="https://cdn.eetrend.com/files/2022-10/%E5%8D%9A%E5%AE%A2/100564755-2743…; alt="unity获取物件组件常用方法总结"><br>

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

这个方法有两个弊端。

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

<img src="https://cdn.eetrend.com/files/2022-10/%E5%8D%9A%E5%AE%A2/100564755-2743…; alt="unity获取物件组件常用方法总结"><br>

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

<strong>2. 通过标签查找物体</strong>

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

<img src="https://cdn.eetrend.com/files/2022-10/%E5%8D%9A%E5%AE%A2/100564755-2743…; alt="unity获取物件组件常用方法总结"><br>

<hr>
<font size="3" color="#c200ff"><strong>二、利用脚本获取组件的方法 </strong></font>

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

<img src="https://cdn.eetrend.com/files/2022-10/%E5%8D%9A%E5%AE%A2/100564755-2743…; alt="unity获取物件组件常用方法总结"><br>

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

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

<hr>
<font size="3" color="#c200ff"><strong>三、利用公开变量引用物体跟组件</strong></font>

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

<img src="https://cdn.eetrend.com/files/2022-10/%E5%8D%9A%E5%AE%A2/100564755-2743…; alt="unity获取物件组件常用方法总结"><br>

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

<img src="https://cdn.eetrend.com/files/2022-10/%E5%8D%9A%E5%AE%A2/100564755-2743…; alt="unity获取物件组件常用方法总结"><br>

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

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

<hr>
版权声明:本文为CSDN博主「学习使我快乐13」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/maojiaoliang/article/details/123989112
<br>