【GameObject 类】 (三)GetComponent获取组件

GetComponent 是访问游戏对象的组件的方法,由于Unity5采用模块化思想对底层进行了重写,能够减少用户负担,原来Unity4.x定义的一些便利属性访问器被取消,所以我们调用GetComponent来访问游戏对象和组件并调整参数,而且在制作过程中使用比较多。

格式:

GameObject.GetComponent<type>()

说明:

(1)GameObject 是定义 GameObject 游戏对象的变量名。

(2)type 是组件名称,类型是 string。

下面给出了几个简单的示例,如下图示:

                                                                                 

                                                                  

GetComponent<Rigidbody>().mass = 20;

                                                                                

GetComponent<BoxCollider>().isTrigger = true;

                                                                                

GetComponent<Test>().enabled = false;

 第一个例子表示 Rigidbody 组件的 mass 赋值为20;

 第二个例子表示给 BoxCollider 组件的 Is Trigger 为 true;

 第三个例子表示禁用 Test 组件。

  • 23
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Unity中,可以使用PrefabUtility获取未实例化的GameObject预制体上的组件。 下面是一个简单的示例,演示如何获取未实例化的GameObject预制体上的组件: 1. 首先,打开Unity编辑器并创建一个新场景。 2. 在项目视图中创建一个新的预制件。 3. 选择预制件并在Inspector视图中添加一个新组件。例如,您可以添加一个名为“TestComponent”的C#脚本。 4. 在TestComponent脚本中添加以下代码: ``` using UnityEngine; public class TestComponent : MonoBehaviour { public int testValue = 0; } ``` 5. 然后,将预制件拖动到场景中。 6. 选择预制件并在Inspector视图中更改TestComponent的testValue属性。例如,您可以将其设置为5。 7. 打开脚本编辑器并创建一个新的C#脚本。将以下代码添加到脚本中: ``` using UnityEngine; using UnityEditor; public class GetPrefabComponent : MonoBehaviour { public GameObject prefab; void Start() { TestComponent testComponent = PrefabUtility.GetPrefabAssetType(prefab) == PrefabAssetType.Regular ? PrefabUtility.GetPrefabInstanceHandle(prefab).GetComponent<TestComponent>() : null; if (testComponent != null) { Debug.Log("TestComponent testValue: " + testComponent.testValue); } else { Debug.Log("TestComponent not found on prefab"); } } } ``` 8. 在场景中创建一个新的空对象,并将GetPrefabComponent脚本添加到该对象上。 9. 在GetPrefabComponent脚本组件中,将prefab属性设置为您创建的预制件。 10. 您现在可以运行场景,并查看控制台中的输出。如果一切正常,您应该会看到以下消息: ``` TestComponent testValue: 5 ``` 这表明您成功获取了未实例化的GameObject预制体上的TestComponent组件,并检索了其testValue属性。 希望这个示例能够帮助您了解如何在Unity中获取未实例化的GameObject预制体上的组件
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值