对于Fly Bird 相信各位肯定不会陌生。(在安卓5.0-7.0版本的系统中多次点击Android Version 就会出现这个游戏,快去试试吧~~
7.0及以后就没有了~~就做不了示范了 ~~
刚开始Unity,也是写的第一个游戏就是做一个Fly Bird.
先把用到的音频,图片放在这 http://pan.baidu.com/s/1eRUMwG6 密码:vd0r
比较懒~~导入图片等资源,创建各种文件夹就不写了。。。
(注意:图片导入后选中所有图片,修改Texure Type属性为:Editor GUI and Legacy GUI,应用保存)
算了,还是提一下吧:
Materials—————材质
Audios——————存放音频资源
Scenes——————存放场景
Textures—————-存放各种图片
1.创建一个3D工程,然后设置下最后的发布平台;
2.游戏是本身是2D游戏,所以就要将摄像机的Projection属性修改为:orthographic;此时摄像机由原来近大远小,近地远高转变为大小高低不变的2D显示样式,如下
3.为游戏创建背景及地面,管道
完成时效果:
创建Quad的3D Object,修改名字为:Background
此时背景为白色,我们需要在背景上贴一张图片
在Materials下创建material,修改名称为background:
然后将background拖到Scence中的那个白色背景墙上,这就完成了游戏的背景~~惊不惊喜,意不意外,开不开心 ~~
- 添加游戏主角:Bird:并添加煽动翅膀的效果。从资源包里可以看到Bird的图片是一张三帧的图片,我们通过吧图片一帧一帧的显示就形成了bird煽动翅膀的效果。
这里了解下Tiling,Offset这两个属性;
Tilling :显示的图片占全图的比例;
Offset:指明使用贴图的起始位置,取值范围为0-1
这里Bird为三帧的照片,所以每帧占全图的1/3;
在C#脚本中控制显示bird的不同帧:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class bird : MonoBehaviour {//时间计数器(Float型)public float timer = 0;//每秒显示10帧public int frameNum = 10;//当前应该显示第几帧public int frameCount = 0;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {timer += Time.deltaTime;if (timer >= 1.0f / frameNum){frameCount++;//重新计时timer = 0.0f;frameCount %= 3;//设置材质的Offset属性gameObject.GetComponent<MeshRenderer>().material.SetTextureOffset("_MainTex", new Vector2(0.33333f * frameCount, 0));}}
}
看下效果:
不截动态图,一个字,懒~~~