在搭建好基本的场景后,我们要开始进入正题了。好了,让我们开始脚本的编写。
一、小鸟的脚本Bird.cs
首先我们能看到小鸟的图片是有三个的,对应不同飞翔状态的三帧
然后我们在小鸟的材质上做些小改动
这里的Tiling的X轴我们设为这个值,为神马呢?因为我们每帧只需要一张图片呀,也就是取整张图片的1/3,然后Offset这个我们会在代码中用到,用于每帧取1/3图片的小鸟。
记得给小鸟物体也就是Bird添加一个标签“Player”,这样方便我们触发器的检测。
下面上代码(注释的代码暂时不用管)
using UnityEngine;
using System.Collections;
public class Bird : MonoBehaviour {
private float timer=0;//计数器,记录1帧的时间
private int frameNum = 6;//我们设置为每秒6帧
private int frameCount=0;//计算当前的帧数
private float offesetSpeed = 0.3333f;//偏移量
//private float currentBirdSpeed;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
timer+=Time.deltaTime;
if(timer>=1.0f/frameNum)//上面这句话用来判断是否满足当前时间大于或等于1帧的时间
{
frameCount++;//值+1,代表当前是第几帧
timer -= 1.0f/ frameNum;//重置计数器
int frameIndex = frameCount % 3;//使该值为0或1或2
this.renderer.material.SetTextureOffset("_MainTex", new Vector2(frameIndex * offesetSpeed, 0));
//意思是设置主纹理(我们就一张纹理图)的偏移量,让他偏移1/3或者2/3或者0,意味着每0.5秒我们就能让小鸟煽动翅膀一个来回
}
/*if(GameManager.gameInstance.currentGameState == (int)GameManager.GameState.GAMEISPLAYING )
{*/
if(Input.GetMouseButtonDown(0))
{
**audio.Play();**
this.rigidbody.velocity = new Vector3(this.rigidbody.velocity.x, 5, this.rigidbody.velocity.z);
}
//当我们按下左键的时候给小鸟(要给小鸟加上刚体组建)一个向上为5的速度,当然前提是我们给小鸟使用重力,这样我们就能让小鸟在我们点击屏幕的时候向上升起一下咯
// }
}
/*public void GetTheGameBegin()
{
currentBirdSpeed = MainSeceneManager.gameLevel;
this.rigidbody.velocity = new Vector3(currentBirdSpeed, 0, 0);
this.rigidbody.useGravity = true;
}
}*/
好了,这样我们就能让小鸟一直在煽动翅膀了