Unity3D学习笔记(1)

来源:互联网 发布:双色球过滤软件 编辑:程序博客网 时间:2024/04/30 05:44

1.      解释对象与资源的区别与联系,根据AngryBots,以及其他官方案例,分别总结资源和对象组织的规则。

对象直接出现在游戏的场景中,是资源整合的具体表现,而资源可以被多个对象使用。有些资源作为模板,可实例化成游戏中具体的对象。资源文件夹通常有对象、材质、场景、声音、预设、贴图、脚本、动作,在这些文件夹下可以继续进行划分。对象一般有玩家、敌人、环境、摄像机和音乐等虚拟父类,这些父节点本身没有实体,但它们的子类真正包含了游戏中会出现的对象。

 

2.      编写简单程序代码,逐一验证MonoBehaviour 基本行为触发的条件。

public classNewBehaviourScript : MonoBehaviour {

      void Awake() {

               print("onAwake!");

      }

      void Start() {

               print("onStart!");

      }

      void Update() {

               print("onUpdate!");

      }

      void OnGUI() {

               print("onGUI!");

      }

      void FixedUpdate() {

               print("onFixedUpdate!");

      }

      void LateUpdate() {

               print("onLateUpdate!");

      }

      void Reset() {

               print("onReset!");

      }

      void OnDisable() {

               print("onDisable!");

      }

      void OnDestroy() {

               print("onDestroy!");

      }

}

 

3.      通过官方参考手册,查找 GameObjectTransformComponent 对象,简单解释三者之间的关系。

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 orcopy or Instantiate of Unity Object) 关系?

预设类似于一个模板,通过预设可以创建相同属性的对象,这些对象和预设关联。一旦预设发生改变,所有通过预设实例化的对象都会产生相应的变化(适合批量处理)。对象克隆不受克隆本体的影响,因此A对象克隆的对象B不会因为A的改变而相应改变。

 

6.      解释组合模式并编写验证程序,向组合对象中子对象cast 消息,验证组合模式的优点。

组合模式允许用户将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合。组合模式实现的最关键的地方是——简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进行一致处理的原因。

子类对象(my_obj)方法:

         void sayHello() {

                   print("Hello!");

         }

父类对象(GameObject)方法:

         void Start () {

                   this.BroadcastMessage("sayHello");

         }

结构:

GameObject

|----my_obj

|----my_obj

运行结果:

Hello!

Hello!


2 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 柔顺后头发太臭怎么办 积分兑换手机被骗了怎么办 老板对你的上级不满怎么办 如果老板不给工资怎么办 手机号码被标记为其他公司怎么办? 被标记为骚扰电话怎么办 手机被标记骚扰电话怎么办 360摄像头不支持5g怎么办 摄像头不支持5g网络怎么办 家里的wifi卡了怎么办 办信用卡没有座机号码怎么办 拨打电话时显示号码有误怎么办 个体营业执照怎么办企业支付宝 没满16岁怎么办电话卡 我的电话卡丢了怎么办 公司注销地税没有补齐怎么办 公司没有固定电话怎么办信用卡 申请信用卡公司没有固定电话怎么办 办理信用卡公司没有固定电话怎么办 江门市固话欠费停机后怎么办 物业交钥匙地面有裂缝怎么办 深圳交通卡丢了怎么办 没装etc走etc怎么办 找不到过敏源身体痒怎么办 微信客服电话打不通怎么办 华为手机网络信号不好怎么办 酷我好友动态加载不了怎么办? 米兔电话手表停机了怎么办 糖猫电话手表停机了怎么办 360电话手表停机了怎么办 小天才电话手表停机怎么办 移动手机卡不知道号码怎么办 天猫退款手机号换了怎么办 科目二考试脚抖怎么办 面试新工作没打电话怎么办 怀孕5个月胎位低怎么办 做业务很害怕打电话怎么办 固定电话总是接到骚扰电话怎么办 电话卡通话被限制了怎么办? 手机名单拉黑了怎么办 被苹果6s被拉黑怎么办