Unity3D 中的面向对象设计 {游戏对象(创建、删除、获取),以及添加修改组件}...

本文详细介绍了Unity中游戏对象的基本操作,包括创建、删除、获取、添加和修改组件的方法,并解释了如何发送广播与消息。提供了实用代码示例,帮助读者快速掌握游戏对象管理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建游戏对象

  游戏对象分三种:(1) 将物体模型等资源由Project工程面板拖拽到Hierarchy层次面板中 (2) 由GameObject菜单创建Unity自带的游戏对象,如Cube、Camera、Light等 (3) 利用脚本动态创建或删除游戏对象

  动态创建方式:

  (1)使用CreatePrimitive方法创建游戏对象

  (2)使用Instantiate实例化产生游戏对象 Instantiate(Object, position, rotation)

二、删除游戏对象

  Destroy(gameobject);

  Destroy(this);

  Destroy(rigidbody);

  Destroy(gameObject, 5); //延迟5秒

三、获取游戏对象

1、通过场景里面的名子或者一个路径直接获取游戏对象
  GameObject go = GameObject.Find(“GameObject”);
  GameObject go = GameObject.Find(“GameObject/Cube”);

2、通过Tag 获取单个游戏对象
  GameObject.FindWithTag(“tag”)

3、通过Tag 获取多组游戏对象
  GameObject.FindGameObjectsWithTag(“tag”)

 

四、添加和修改组件

  GameObject.AddComponent(className:string)

  GameObject.GetComponent(type:Type)   

  eg:

  monsterTr = this.GetComponent<Transform>();   

  anim = this.GetComponent<Animator>();

  nav = this.GetComponent<NavMeshAgent>();

  playerTr = GameObject.FindWithTag("Player").GetComponent<Transform>();

五、发送广播与消息

  GameObject.SendMessage: 发送消息

  GameObject.BroadcastMessage:广播消息

  GameObject.SendMessageUpwards:向上发送消息

 

 

参考链接:

  《Unity5.X游戏开发技术与实例》P63

   Unity3d获取游戏对象的几种方法:http://blog.youkuaiyun.com/aiwuzhi12/article/details/54895859

 

 

转载于:https://www.cnblogs.com/tanrong/p/6913767.html

参考资源链接:[Unity3D入门指南:从零到精通](https://wenku.csdn.net/doc/q4p1ce972i?utm_source=wenku_answer2doc_content) Unity3D作为一个跨平台的游戏开发引擎,支持面向对象编程(OOP)的设计思想,这使得开发者可以创建出结构清晰、易于维护的游戏代码。为了设计一个可复用的游戏对象组件,你可以遵循以下步骤: 首先,明确组件的功能需求,确保其具有独立性和复用性。例如,你可以设计一个通用的'健康条'组件,它可以附加到任何需要显示生命值的游戏对象上。 接下来,在Unity编辑器中创建一个新的C#脚本,并将其命名为'HealthBar.cs'。在这个脚本中,你需要定义一个类,它应该包含至少一个公共属性来表示生命值(Health),以及一个方法来更新健康条的显示状态。 ```csharp public class HealthBar : MonoBehaviour { public float Health = 100f; // 生命值初始值 void Update() { // 更新健康条的显示逻辑 } // 该方法可以被其他脚本调用以更新生命值 public void SetHealth(float newHealth) { Health = Mathf.Clamp(newHealth, 0f, 100f); // 限制生命值在0到100之间 UpdateDisplay(); } private void UpdateDisplay() { // 更新健康条UI显示的代码 } } ``` 在上述代码中,`HealthBar`类通过`SetHealth`方法接受新的生命值输入,并更新UI显示。`UpdateDisplay`方法是一个私有方法,用于根据当前生命值更新健康条的UI表现。 然后,将这个脚本拖拽到任何需要显示健康条的游戏对象上,通过调用`SetHealth`方法来动态更新生命值。 最后,为了增强组件的复用性,你还可以在Unity编辑器中创建预制件(Prefab),这样你就可以在多个不同的游戏对象中重用这个'健康条'组件,而无需重复编写代码。 通过以上步骤,你将能够创建出既模块化又具有高度复用性的游戏对象组件。为了进一步提升你的Unity3D开发技能,建议深入阅读《Unity3D入门指南:从零到精通》。这本书详细介绍了Unity3D的使用方法,并且特别强调了面向对象编程在游戏开发中的应用,将有助于你更好地理解和运用Unity3D进行项目设计和视觉编程。 参考资源链接:[Unity3D入门指南:从零到精通](https://wenku.csdn.net/doc/q4p1ce972i?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值