《Unity 游戏设计与实现 南梦宫一线程序员的开发实例》学习笔记01

第0章 Unity概要

这是我的Unity初体验,之前没有接触过Unity引擎,但是确实很想学习,就先阅读了一点Unity Manual。熟悉了一下软件界面各窗口功能后,觉得Unity Manual 介绍的各方面很细,但是不能给我一个完整的 Unity 开发的概念。 在不断的寻找过程中,发现了对于本书的推荐。先简单的看了一下本书试读章节的pdf,学着做了一下小球游戏的开发,就下定决心买了这本书, 因为这本书重点在于介绍用Unity开发游戏的思路 。今天我用了一下午的时间,读完了第0章。下面我就分享一下个人体会。

界面介绍在此省略,我主要说一下对Unity开发游戏的整体认识。Unity游戏是由不同场景组成的,每个场景包含众多的GameObject,这些GameObject以及用户输入间的交互就形成了游戏的内容。可以说游戏场景就像是电影场景的拍摄,布景、灯光、道具、演员、特技及摄影机等在导演的安排下演绎出精彩的故事。在游戏场景中除了有导演的安排,关键是玩家输入对故事的影响。游戏设计师就相当于导演,安排了各个GameObject及用户输入间的交互关系。
游戏这部实时交互电影是如何拍摄的呢?首先是GameObject设计,有点像布景、道具设计、演员造型;然后是场景的布置,即对各GameObject的位置安排,这包括了3D/2D物体、灯光、摄像机的空间位置安排;再有就是各动态特性的安排,包括运动、各GameObject的交互行为的定义,包括GameObject之间的影响,特别是输入对GameObject影响。
作为场景中的基本元素,GameObject涵盖了物体、灯光、摄影机等种类。每种GameObject都有自己的各种基本属性,并通过Unity中组件的概念为GameObject添加相应的属性与功能,如通过添加Material资源,可以改变球体的外观,通过添加Rigidbody可以添加phisic中的刚体属性,通过添加脚本可以添加相应的行为定义。
Asset,资源,包含了Material、Scene、Prefab、Script等类型,Prefab可以为场景添加预设的GameObject,Material和Script可以添加到GameObject上,Scene应该是作为游戏的组成部分进行使用。
对于Prefab(预设)的理解。通过实例化预设,可以为场景添加预设的实例。预设的某一属性值改变时,则其所有实例的同一属性发生相同修改。这些实例的属性可以进行修改,但单纯的修改不能影响到预设。只有在修改某一属性并点击Apply按钮时,则预设才发生相同变化,且所有预设的实例发生相同变化。

需要注意的是,该书编写时使用的Unity4.0版本,因此如果使用5.0以上版本学习的话,在写脚本的时候会有一些不同。我遇到的问题就是小球游戏中Player脚本中对rigidbody访问时的写法是不同的。在原版本中,代码是这样的。

    // Update is called once per frame
      void Update () {
        if (this.is_landing)
        {
            if (Input.GetMouseButtonDown(0))
            {
                this.is_landing = false;
                this.rigidbody.velocity = Vector3.up * this.jump_speed;
            }
        }
      }

而在5.0以上版本中是这样的:

 // Update is called once per frame
      void Update () {
        if (this.is_landing)
        {
            if (Input.GetMouseButtonDown(0))
            {
                this.is_landing = false;
                this.GetComponent().velocity = Vector3.up * this.jump_speed;
            }
        }
      }

因此,大家可以到图灵社区该书的页面中下载5.0版本的源代码附件。

你可能感兴趣的:(Unity)