Unity3D学习:一些基本问题

  • 解释对象与资源的区别于联系,根据官方案例,分别总结资源和对象组织的规则/规律。

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

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

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

·       编写简单程序代码,逐一验证 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!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值