一、柱子的移动
1.制作柱子:新建空物体,包含上方柱子,下方柱子和空物体(用于计算得分)
2.给柱子和空物体加上适合大小的碰撞体
空物体需要勾选上Is Trigger
3.柱子的移动(把代码给柱子)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BarrierMove : MonoBehaviour
{
public Vector3 BarrierPos;//柱子的位置
public float Posy;//最后位置
void Start()
{
}
void FixedUpdate()
{
//如果柱子的x轴位置小于最终位置
if (transform.position.x < Posy)
{
float y = Random.Range(200, 400);//随机生成一个数字作为高度
Vector3 height = new Vector3(0, y, 0);
transform.position = BarrierPos + height;//柱子的位置加上随机的高度
}
transform.Translate(Vector3.right * -3f);//使柱子向后移动
}
}
根据图片位置设置
二、小鸟的控制
1.给柱子添加tag
给柱子中间的空物体添加tag
2.给小鸟添加碰撞体和刚体
3.代码(给小鸟)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Bird : MonoBehaviour
{
public bool flag = true;
public int score = 0;
public Text text;//得分
private void FixedUpdate()
{
float y = Input.GetAxis("Vertical");//得到y轴
Vector3 speed = new Vector3(0, y, 0);
GetComponent<Rigidbody2D>().velocity = speed * 500;//给它y方向上的力
//如果flag=false,游戏暂停
if(!flag)
{
Time.timeScale = 0;
}
}
//通过柱子
public void OnTriggerExit2D(Collider2D collision)
{
if(collision.tag== "through")
{
score++;
Debug.Log(score);
text.text = "分数:" + score;
}
}
//碰到柱子,游戏结束
public void OnCollisionEnter2D(Collision2D collision)
{
if (collision.collider.tag == "barrier")
{
flag = false;
Debug.Log("游戏结束");
}
}
}
三、游戏暂停开始
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Timescale : MonoBehaviour
{
public Button pause;
public Button resume;
void Start()
{
}
void Update()
{
}
public void _Pause()
{
//游戏暂停
Time.timeScale = 0;
}
public void _Resume()
{
//游戏运行性
Time.timeScale = 1;
}
}