首页 > 学院 > 开发设计 > 正文

Unity3D学习:第二周作业

2019-11-06 07:01:55
字体:
来源:转载
供稿:网友
解释对象与资源的区别于联系,根据官方案例,分别总结资源和对象组织的规则/规律。

答: 联系:有些资源可作为模板,可实例化成游戏中具体的对象。

区别:对象一般直接出现在游戏的场景中,是资源整合的具体表现,是资源整合的具体表现;而资源是为对象服务而使用的,多个不同的对象可以享用共同的资源。

组织规律:对象一般是人物,物体。比如玩家、敌人、环境和摄像机等;而资源一般是可为对象服务的,比如材质、场景、声音、预设、贴图、脚本、动作等。

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

答:

publicclassNewBehaviourScript : MonoBehaviour {

     void Awake() {

              Debug.Log(“Awakeinvoked!”);

     }

     void Start() {

              Debug.Log(“Startinvoked!”);

     }

     void Update() {

              Debug.Log(“Updateinvoked!”);

     }

     void OnGUI() {

              Debug.Log(“OnGUIinvoked!”);

     }

     void FixedUpdate() {

              Debug.Log(“FixedUpdateinvoked!”);

     }

     void LateUpdate() {

              Debug.Log(“LateUpdateinvoked!”);

     }

     void Reset() {

              Debug.Log(“Resetinvoked!”);

     }

     void OnDisable() {

              Debug.Log(“OnDisableinvoked!”);

     }

     void OnDestroy() {

              Debug.Log(“OnDestroyinvoked!”);

     }

}

 

通过官方参考手册,查找 GameObject,Transform,Component 对象,简单解释三者之间的关系。(使用UMLet 画教程上图)

答:Component是组件,一个GameObject可以包含很多个不同的组件Component,而Component有着很多不同的功能属性,Transform就属于其中的一种。而且Transform是每一个GameObject都必有的Component。

 

整理官方和其他学习材料,介绍如何用程序(代码)管理一个场景的游戏对象树林。编写简单代码验证以下技术的实现:

o   查找对象

o   添加子对象

o   遍历对象树

o   清除所有子对象

答: 通过名字查找:

public GameObject.Find(“string testname”)

    通过标签查找单个对象:

public GameObject.FindWithTag(“stringtagname”)

     通过标签查找一组对象:

public GameObject.FindGameObjectWithTag(“stringtagname”)

     添加子对象:

public GameObject.CreatePRimitive(PrimitiveType.name)

     遍历对象树:

foreach(Transform child in transform) {

     Debug.Log(child.gameObject.name);

}

     清楚所有子对象:

foreach(Transform child in transform) {

     Destroy(child.gameObject);

}

预设有什么好处?与对象克隆 (clone or copy or Instantiate of Unity Object) 关系?

答:预设就是把一个制作好了的游戏对象模板化,用于批量的套用工作,产生的对象和模板本质属性相同,但生产的位置和角度以及生成后的一些属性是允许发生变化的,游戏的场景中需要大量相同的实例就可以用预设实现。而且预设发生变化,由此预设产生的所有实例都会跟着变化。而对象克隆出来的实例不会随本体变化而变化。

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

答:组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素。

子类对象(my_obj)方法:

        void TestFun() {

                  print("OK!");

        }

父类对象(GameObject)方法:

        void Start () {

                  this.BroadcastMessage("TestFun ");

        }

结构:

GameObject

|----

my_obj

|----

my_obj

 

运行结果:

OK!

OK!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表