Unity3D学习(1)——游戏对象、行为

来源:互联网 发布:影视鉴赏网络课答案16 编辑:程序博客网 时间:2024/06/15 01:47

Unity3D是一个用于开发三维游戏,制作三维动画等用途的综合开发工具,功能强大。本系列博客记录了我学习Unity3D中遇到的一些问题以及归纳总结的知识。

第一节,我们的主题为游戏对象的认识。以下是我记录下的一些知识点:

1. 对象与资源的区别与联系
对象出现在游戏的场景中,是资源整合的具体表现;
资源可以被多个对象使用,有些可作为模板被实例化成游戏中具体的对象。

对象一般有玩家、敌人、环境、摄像机等非实体虚拟父类,但子类常为游戏内的实体;
资源一般包含对象、材质、场景、声音、预设、贴图、脚本、动作等子文件夹,通常可进一步划分。

2. 用一段简单程序代码,逐一验证 MonoBehaviour 基本行为触发的条件
cs文件添加于主摄像机对象上,代码截图以及控制台截图如下:

这里写图片描述

这里写图片描述

3.查找并解释 GameObject,Transform,Component 对象三者之间的关系,并画出其UMLet 图

这里写图片描述

GameObject包含Component,Transform属于一种Component;即GameObject必定包含一个Transform组件,可能包含其它Component。

4. 整理官方和其他学习材料,介绍如何用程序(代码)管理一个场景的游戏对象树林

可以加入一个父类作为森林,并向该父类添加若干子对象,每一个对象都是森林的一颗树。然后为森林对象编写属性函数,这些属性将适用于所有森林中的树。
查找对象
通过名字查找:public static GameObject Find(string name)
通过标签查找单个对象:public static GameObject FindWithTag(string tag)
通过标签查找多个对象:public static GameObject[] FindGameObjectsWithTag(string tag)

添加子对象
public static GameObect CreatePrimitive(PrimitiveTypetype)

遍历对象树

foreach (Transform child in transform) {         Debug.Log(child.gameObject.name);}

清除所有子对象

foreach (Transform child in transform) {         Destroy(child.gameObject);}

5. 预设有什么好处?与对象克隆 (clone or copy or Instantiate of Unity Object) 关系?
预设类似模板,通过预设创建相同属性的对象并和预设关联。预设发生改变,所有通过预设实例化的对象都会产生相应的变化,批量处理方面较方便。

对象克隆不受克隆本体的影响,即A对象克隆的对象B不随A的改变而改变。

6. 解释组合模式。并编写验证程序,向组合对象中子对象 cast 消息, 验证组合模式的优点。
组合模式将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合。关键点在于简单对象和复合对象必须实现相同的接口。

cs文件分别添加于父对象和子对象上,代码截图以及控制台截图如下:

这里写图片描述

父对象

这里写图片描述

子对象

这里写图片描述

控制台截图

0 0
原创粉丝点击