在unity中获取组件和物体的几种方法(通过代码)

在游戏开发过程中我们要获取unity中的组件和物体
在这篇博客中我将介绍几种方法来获取他们

1.在代码中直接public

在代码中直接public 类型 名称
然后在unity中赋值
这是最直接但是最不方便的方法 在小的项目中可以
但是在比较大的项目中是不可取的 因为物体组件很多很容易遗漏
从而出现很麻烦的Bug

2.Find方法

在unity中官方提供了一个Find的方法 很方便
这个方法的使用方法是 GameObject.Find(“物体名称”);
举个例子

GameObject Cube = GameObject.Find("Cube");
if(Input.GetKeyDown (KeyCode .Space))
        {
            Destroy(Cube);
        }

这些代码的意思是在unity中寻找一个名字叫Cube的物体
检测空格键的 按下 然后销毁Cube
很简单 在unity中不用任何操作 直接挂在任意一个物体上即可(除了要被销毁的Cube 会报错)

3.FindWithTag方法

这个方法与上边类似
用法是 GameObject.FineWithTag(“物体标签的名称”);
举个例子

GameObject Cube = GameObject.FindWithTag("Cube");
if(Input.GetKeyDown (KeyCode .Space))
        {
            Destroy(Cube);
        }

使用的时候与上边完全相同
前提是设置标签 不然没有查找到就会报错

在这里我说一下 就是上边两个方法
其中查找标签的方法效率比较高

4.介绍一下组件获取与取消

在组件的获取上
我们用一个相同类型的变量 然后获取该脚本挂在的物体上相应类型的组件
例子

 BoxCollider Colider = GetComponent<BoxCollider>();
 Rigidbody rig = GetComponent<Rigidbody>();

等这些
然后取消的话 先获取 之后

Colider.enabled = false;

注意在unity中组件前边可以取消的才可以用该方法
没有的不能使用 比如RigidBody 等

发布了52 篇原创文章 · 获赞 47 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44302602/article/details/98445497