GetComponent(),parent,GetComponentInChildren

一、GetComponent<BoxCollider>().isTrigger = true;获取自身组件属性,从当前游戏对象获取组件BoxCollider,只在当前游戏对象中获取,没得到的就返回null,不会去子物体中去寻找

二、box = GetComponent<BoxCollider>();

print("BoxCollider组件的对象" + box.name);

三、gameObject.GetComponentInChildren<Rigidbody>();先从本对象中找Rigidbody组件,有就返回,没就子物体中找,直到找完为止。

 

四、GetComponent<Test>().enabled = false;     禁用 Test 组件。

        GetComponent<BoxCollider>().isTrigger = true;
        box = GetComponent<BoxCollider>();
        rigidbody = gameObject.GetComponentInChildren<Rigidbody>();

        if (rigidbody != null)
        {
            print("找到存在rigidbody组件的对象" + rigidbody.name);
        }

五、使用最快的方法获得组件

         light = (Light)GetComponent("Light");这个最慢
        print("(Light)GetComponent(Light);"+ light.name);
        light = GetComponent<Light>(); 这个最快最省资源
        print("GetComponent<Light>();" + light.name);
        light = (Light)GetComponent(typeof(Light));这个比上一个慢一点
        print("(Light)GetComponent(typeof(Light))" + light.name);

在脚本中使用gameObject.transform.parent,可以获得你所依附的对象的父对象,如果再想往上一级获取,可以gameObject.transform.parent.parent

GetComponentsInChildren<T>()=GetComponentsInChildren<T>(true)取本游戏对象及子物体的所有组件

GetComponentsInChildren<T>(false)取本游戏对象及子物体的所有组件 除开非活跃的游戏对象,不是该组件是否活跃。
 

猜你喜欢

转载自blog.csdn.net/m0_73841296/article/details/131161962