Unity3D游戏学习笔记2
来源:互联网 发布:oa办公系统java源代码 编辑:程序博客网 时间:2024/06/05 02:51
解释对象与资源的区别与联系,根据官方案例总结资源和对象组织的规则/规律。
(1)对象是具体的类的实例化,有其自身特定的属性值。而资源可以被多个对象使用,资 源整合的具体表现是直接出现在游戏场景的对象,资源可以说是对象构成的部件或间接组 件。有些资源作为模板,可实例化成游戏中具体的对象。
(2)通过案例,我们可以知道,资源和对象通常会被分为几种类别方便使用和管理。在资 源文件夹中,通常有对象、材质、场景、声音、预设、贴图、脚本、动作,在这些文件夹下 可以继续进行划分。而对象则一般有玩家、敌人、环境、摄像机和音乐等虚拟父类,这些父 节点本身没有实体,但它们的子类真正包含了游戏中会出现的对象。编写简单程序代码,逐一验证 MonoBehaviour 基本行为触发的条件。
public class NewBehaviourScript:MonoBehaviour{ void Awake(){ print(“onAwake!”); } void Start(){ print(“onStart!”); } void Update(){ print(“onUpdate!”); } void FixedUpdate(){ print(“onFixedUpdate!”); } void Reset(){ print(“onReset!”); } void OnDestroy(){ print(“onDestroy!”); } }
3.通过官方参考手册,查找 GameObject,Transform,Component 对象,简单解释三者之 间的关系。(使用 UMLet 画教程上图) GameObject 包含 Component,Transform 属于 Component 的一种。GameObject 必定包含一 个 Transform 组件,也可能包含其它 Component。
4.整理官方和其他学习材料,介绍如何用程序(代码)管理一个场景的游戏对象树林。编 写简单代码验证以下技术的实现:
(1)查找对象 通过名字查找: publicstaticGameObjectFind(stringname)
通过标签查找:
单个对象:
publicstaticGameObjectFindWithTag(stringtag)
多个对象:publicstaticGameObject[]FindGameObjectsWithTag(stringtag)
(2)添加子对象 publicstaticGameObectCreatePrimitive(PrimitiveTypetype)
(3)遍历对象树
foreach(Transformchildintransform){ Debug.Log(child.gameObject.name); }
(4)清除所有子对象
foreach(Transformchildintransform){ Destroy(child.gameObject); }
5.预设有什么好处?与对象克隆 (cloneorcopyorInstantiateofUnityObject) 关系?
(1)预设类似于一个模板,通过预设可以创建相同属性的对象,这些对象和预设关联。, 对象克隆也可以创建相同属性的对象,但是对象克隆与本体无关联。即对于预设,一旦预设 发生改变,所有通过预设实例化的对象都会产生相应的变化。
(2)而对象克隆不受克隆本体的影响,因此 A 对象克隆的对象 B 不会因为 A 的改变而相应 改变。预设就有适于批量处理的好处。
6.解释组合模式。并编写验证程序,向组合对象中子对象 cast 消息,验证组合模式的优点
(1)组合模式原理:将对象组合成树形结构来表现”部分-整体“的层次结构。组合模式使得用户以一致的方式处理单个对象以及组合对象。组合模式实现的关键——简单对象和复合 对象必须实现相同的接口。
my_obj: void sayHello(){ print(“Hello!”); } GameObject: void Start(){ this.BroadcastMessage(“sayHello”); }
- Unity3D游戏学习笔记2
- Unity3D游戏学习笔记1
- Unity3D游戏学习笔记3
- Unity3D 太空射击游戏学习笔记
- 【Unity3d学习笔记】基本游戏地形
- Unity3D学习笔记(十三)导出游戏
- Unity3D游戏开发入门学习笔记
- Unity3d学习笔记(7)--打靶游戏
- 【Unity3D游戏开发学习笔记】(一)Unity3D初认识
- 【Unity3D游戏开发学习笔记】(二)Unity3D编辑器总览
- 【Unity3D游戏开发】spine-unity3D 学习笔记 (二十)
- unity3D学习笔记2
- UNITY3D学习笔记2
- 【Unity3D 笔记】 一个2D游戏Rougelike
- 【Unity3D】学习笔记(第2记) 2D游戏开发基本技巧之背景制作
- 【Unity3D】学习笔记(第4记) 2D游戏开发基本技巧之人物动画
- 【Unity3D】学习笔记(第5记) 2D游戏开发基本技巧之拾取道具
- Unity3D学习笔记(2)——用GUI制作井字棋游戏
- leetcode_120. Triangle
- linux shell 流程控制
- 顺序栈的完整实现
- JavaScript中格式化Date类型
- 入坑CSDN
- Unity3D游戏学习笔记2
- zoj 3778 Talented Chef (思维)
- 惰性求值和yield-Python
- Java基础知识总结(二)
- 181_08_IO流_FileInputStream_01
- 通过GDB调试理解GOT/PLT
- 没事玩玩leetcode周赛 #30~#34 #40 #42~#48 #50~#54 #56 #58 #59 60 #61
- 初学凸包(凸包学习总结)
- JavaScript学习笔记32-利用循环遍历数组元素