hello unity2d

本来想边学边写一些Unity2D的教程,但是在 http://www.raywenderlich.com/ 网站上已经提供了更好的选择,而且写的非常详细,这里就略作 一些介绍并记录下学习的笔记,以备忘。

入门篇

入门篇做的是一个叫做ZombieConga的游戏,主角是一个僵尸他碰到一直小猫就会把小猫变成僵尸并像贪吃蛇一样跟随自己,如果不小心碰到了 老太太那么就会丢失自己捉到的僵尸小猫。截图如下

你可以在AppStore上下载到这个游戏。

教程共5篇

  1. Unity 4.3 2D Tutorial: Getting Started 介绍unity的各个窗口
  2. Unity 4.3 2D Tutorial: Animations 介绍动作制作
  3. Unity 4.3 2D Tutorial: Animation Controllers 更深入的介绍动画状态机和动画控制
  4. Unity 4.3 2D Tutorial: Physics and Screen Sizes 碰撞系统和屏幕适配
  5. Unity 4.3 2D Tutorial: Scrolling, Scenes and Sounds 滚屏和声效

这套入门教程会教会你unity2d各个窗口的使用,基本操作,2d精灵的概念,基本的动画系统和碰撞系统,如何添加声效和简单的滚屏。

进阶篇

进阶篇做的是山寨的Jetpack Joyride , 效果大概这样

教程共3篇

  1. Jetpack Joyride in Unity 2D – Part 1 使用物理引擎、碰撞系统、粒子效果和图层系统
  2. Jetpack Joyride in Unity 2D – Part 2 使用动画系统并自动生成无限关卡
  3. Jetpack Joyride in Unity 2D – Part 3 添加更多游戏组件、声效和景深背景

这个教程会让你复习入门篇的部分内容,并学会使用新的知识,比如粒子效果、图层系统、如何制造无限关卡和有景深效果的背景。

GUI篇

比较巧的是unity在4.6版本的时候发布了新的GUI系统,正好学了一下,GUI系统主要用来做菜单用的共3篇教程

  1. Unity New GUI Tutorial – Part 1 学会制作按钮、按钮动画和屏幕分辨率适配
  2. Unity New GUI Tutorial – Part 2 创建对话框
  3. Unity New GUI Tutorial – Part 3 使用Text、Slider、Panel和Mask, 并制作一个炫酷的弹出菜单

笔记

窗口

Unity打开之后有几个默认的窗口

  1. Scene 显示当前场景,里面包含的各种游戏对象(GameObject)
  2. Game 显示当前游戏的运行效果的窗口
  3. Hierarchy 显示Scene窗口中的所有游戏对象的结构,或者说Scene就是Hierarchy窗口中各游戏对象的效果
  4. Project 显示当前工程中的所有素材、代码、动画等等
  5. Inspector 显示游戏组件或者工程中某个文件的属性

还有几个没有默认显示但是也经常用到的窗口,在 “Window” 菜单中点击就可以显示了

  1. Animation 动画窗口,用来编辑动画
  2. Animator (不会译)用来组织不同动画状态的跳转关系
  3. Console 控制台,打印log (Debug.Log(“test”))

Sprite 精灵

在unity2d中图片元素都是一个精灵,比如把一张图片拖到Project窗口中的时候,这张图片就自动转化成了unity中精灵,精灵是2d中特有 概念。点击这张图片可以Inspector窗口中查看图片的属性和导入选项。可以发现 “Texture Type” 为 “Sprite(2D and UI)” 。

inspector of sprite

如果这张图片中包含好多子图,可以通过 “Spite Mode” -> “Multiple” 来设置导入为多图形式,这样可以通过 “Sprite Editor” 对图片 进行分割,切出途中包含的各个子图。典型的包含多个子图的图片(它有个专业称呼叫 SpritePack 精灵打包,把多个精灵打包在一张图片中 内存和性能都会有所提高)。

sprite pack

单个精灵(这样的图片导入模式使用默认的就行了)

sprite signle

游戏对象(GameObject)和组件(Component)

游戏对象或者叫游戏物体,他统指游戏中的所有东西,比如游戏中的一个球体、一个人、光源、粒子系统、摄像机等。在2D模式中独有的游戏组件就是精灵(Sprite). 游戏对象构成整个游戏场景。

组件指的是网格、脚本、碰撞、刚体等等东西,他是游戏对象的属性,每个游戏对象都可以设置不同的组件,使这个游戏对象变得丰富多彩, 一个典型的2D游戏对象都拥有这些组件

  1. Transform 控制物体的移动和变形
  2. Sprite Render 精灵渲染器(就是画图的,让这张图片显示出来)
  3. XXXX Collider 2D ,比如 Box Collider 、Circle Collider 用来做碰撞检测的,Box设置一片方形区域做碰撞区域,Circle就设置圆形作为碰撞区域
  4. Audio Source 用来播放音频的,设置一个音频文件之后就可以播放声音了
  5. Script 脚本,这是自定义物体行为的地方,在这里我们可以控制物体的其他组件通过各种组合制作出各种效果

Prefabs 预制件

比如有一个游戏对象你给配置了好多组件,整个过程很复杂,但是每次new一个新的时候都要这么配置一遍,是不是很麻烦,如果遇到这种 情况就需要Prefab功能了,只要把一个已经配置好的游戏对象从Hierarchy或者Scene窗口拖到Project窗口就可以很容易的创建一个Prefab, 这个Prefab拥有之前配置过的所有功能。而在代码中实例化的时候只要很简单的一句话就可以用Prefab复制一个对象出来了。

Object aGameObject = Instantiate(aPrefab);

就是这么简单。

脚本

每个游戏对象都可以添加一个或者多个脚本,脚本是游戏灵魂所在,因为你可以在脚本中定义各种行为,控制各种其他组件的变化,从而创建 出丰富多彩的效果。每个脚本都继承自 MonoBehaviour 对象,一个典型的脚本如下

public class NewBehaviourScript : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

这是一个没有任何自定义内容的空脚本,Start() 方法会在脚本开始的时候执行一次,可以做一些初始化的操作,Update() 方法每帧都会调用,是一个周期性调用的方法,可以在这里写一些游戏逻辑。

摄像机 (Camera)

如果你新建一个场景,这个场景中就会自动包含一个游戏对象—— Main Camera,这个主摄像机主要用来显示Game窗口内容,它所对准的区域都 会显示在Game窗口上,所以通过调整主摄像机的大小和位置就可展示Scene窗口中描述的各种场景了。

图层

2D游戏中都有图层的概念,因为游戏是二维的,如果两个Sprite重叠在一起,就会有谁显示在前面谁在后面,谁遮住谁的问题,所以 图层可以用来控制绘图的顺序和遮罩关系。在”Edit”->”Project Settings”->”Tags and Layers”->”Sorting Layers” 可以配置图层。 默认只有一个Default图层,你可以添加更多的图层。然后在游戏对象的Inspector窗口可以设置对象所在的图层。 如果两个Sprite显示在一个图层里面,还在设置”Sprite Renderer”->”Order in Layer” 设置展示的顺序。

sprite layer

nTop 05 December 2014
blog comments powered by Disqus