对于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 initialization
void Start () {
}
// Update is called once per frame
void 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));
}
}
}
看下效果:
不截动态图,一个字,懒~~~