随笔分类 - Unity3D基础教程
摘要:游戏中需要单例有以下几个原因:
- 我们需要在游戏开始前和结束前做一些操作,比如网络的链接和断开,资源的加载和卸载,我们一般会把这部分逻辑放在单例里。
- 单例可以控制初始化和销毁顺序,而静态变量和场景中的GameObject都无法控制自己的创建和销毁顺序,这样就会造成很多潜在的问题。
- Unity3D的GameObject需要动态创建。而不是固定在场景里,我们需要使用单例来创建GameObject。
- Unity3D的场景中的各个GameObject需要从单例中存取数据。
阅读全文
摘要:UGUI是Unity在4.6中引入的新的GUI系统,与传统的中间件NGUI相比,这套新GUI系统有几个核心亮点:
- 放弃了Atlas的概念,使用Packing Tag的方式来进行图集的规划
- 放弃了depth来确定UI显示层级的概念,使用Hierarchy的SiblingIndex来确定先是层级
- 使用RectTransform来代替以前NGUI中的UIAnchor,分辨率适配更加简单
- 使用LayoutGroup代替以前的NGUI中的Grid,实现了更灵活的布局
阅读全文
摘要:Unity3D是一个跨平台的游戏引擎,如果您开始看这篇博客的话,你一定实在权衡学习或者使用哪种游戏引擎来开发您的游戏,就我的观点来看,你不用再犹豫了,直接下载Unity3D开始学习吧!
阅读全文
摘要:从程序结构的角度来讲,协程是一个有限状态机,这样说可能并不是很明白,说到协程(Coroutine),我们还要提到另一样东西,那就是子例程(Subroutine),子例程一般可以指函数,函数是没有状态的,等到它return之后,它的所有局部变量就消失了,但是在协程中我们可以在一个函数里多次返回,局部变量被当作状态保存在协程函数中,知道最后一次return,协程的状态才别清除。
简单来说,协程就是:你可以写一段顺序的代码,然后标明哪里需要暂停,然后在下一帧或者一段时间后,系统会继续执行这段代码。
阅读全文
摘要:在第一篇文章【Unity3D基础教程】给初学者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics我已经讲过了一些关于刚体和碰撞的关系,这次我们就通过Flappy Bird这个事例来讲解一下刚体和碰撞体在游戏中的具体应用。相关代码可以参考Flappy Bird的源码。
阅读全文
摘要:上一次我们讲了MonoBehaviour的前世今生,了解了游戏中的每一个GameObjec都是由脚本控制的,这一次我们开始将Unity中Native 2D中的Sprite,并且使用Animation来让Sprite动起来。
在接下来的几篇博客里,我会通过做一个Flappy Bird来讲解Unity中各个组件的使用,项目的源代码在这里:Unity Flappy Bird。欢迎各位前去Fork和Star。
阅读全文
摘要:上一次我们讲了GameObject,Compoent,Time,Input,Physics,其中Time,Input,Physics都是Unity中的全局变量。GameObject是游戏中的基本物件。GameObject是由Component组合而成的,GameObject本身必须有Transform的Component,这也加深了我们对GameObject的理解,即GameObject是游戏场景中真实存在,而且有位置的一个物件。
但是我们怎么操纵这个GameObject呢?这就需要引入脚本组件了,也就是今天讲的MonoBehaviour
阅读全文
摘要:Unity3D是一个Component-Based的游戏引擎,并且为GamePlay Progrmmer提供了很多游戏性层上的支持。比如可以在图形界面上设计动画状态转换的Animator。比如可以直接在场景编辑器中方便进行调整的Collider。比如可以动态调整动画曲线的Animation。总的来说,Unity是一个架构比Cocos2d-x精巧许多的游戏引擎。
阅读全文