使用unity制作“跳一跳”小游戲

主要代碼如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class TabJump : MonoBehaviour {
public GameObject cubes;//方塊預(yù)制體
public float Force = 500;//力度
public float DropForce;//按壓力
private Rigidbody rigidbody;//剛體組件
private Animation animation;//動畫組件
private int score;
public Text scoretxt;
public AudioClip jump;
public AudioClip down;
private AudioSource ad;
//private Camera can;
void Start()
{
rigidbody = GetComponent<Rigidbody>();
animation = GetComponent<Animation>();
ad=GetComponent<AudioSource>();
//can = GameObject.Find("Main Camera").gameObject.GetComponent<Camera>();
scoretxt.text = score.ToString();
}
[Header("X軸的偏移量")]
public float _x = -0.5f;
private Vector3 nextPos;//下一個生成物體的位置
private void Update()
{
Jump(nextPos);
}
//void OnCollisionEnter(Collision collision)
void OnCollisionEnter(Collision col)
{
if(col.transform.tag=="plane")//如果碰到了plane,重新加載場景
{
SceneManager.LoadScene("001");
}
if(col.transform.tag=="box")//如果碰到了一個標(biāo)簽為box的并且可以克隆
{
creatbox(col.transform.position);//克隆一個方塊
ad.PlayOneShot(down);
nextPos = col.transform.position+pos;//將碰到的物體的位置賦值給nextPos
if (canaddscore)
{
score += 1;
}
scoretxt.text = score.ToString();
}
}
void UpdateCamera()//跳完相機移動
{
Camera.main.transform.localPosition = new Vector3(0, 0, 2f);
}
Vector3 pos = new Vector3(0, 0, 2);//Z軸偏移量為2
GameObject newcube;//聲明一個游戲物體變量
private bool CanCopy=false;//是否可以克隆
bool canaddscore;
void Jump(Vector3 pos)
{
Vector3 Dir = (pos - transform.position).normalized;//跳的方向(向量的減法運算)
if (Input.GetMouseButton(0))//鼠標(biāo)按下
{
animation.Play("reset");
DropForce += 0.05f;//按壓力+=0.05
if (DropForce >= 7.0f)//如果大于等于5
{
DropForce = 7.0f;//就等于5
}
if(DropForce>=2.0f)
{
canaddscore = true;
}
}
if (Input.GetMouseButtonUp(0))//鼠標(biāo)抬起
{
CanCopy=true;//將能否克隆開關(guān)改為true
ad.PlayOneShot(jump);
rigidbody.AddForce(Vector3.up* Force * DropForce/2);//添加一個向上的力
rigidbody.AddForce(Dir * Force * DropForce/2);//添加一個向下一個物體跳向的力
animation.Play("jump");//播放翻轉(zhuǎn)動畫
DropForce = 0;//按壓力重置為0
}
}
/// <summary>
/// 克隆一個方塊
/// </summary>
/// <param name="trans">位置</param>
void creatbox(Vector3 trans)
{
newcube = Instantiate(cubes, trans + pos, Quaternion.identity) as GameObject;
newcube.name = "box";
}
}
將此腳本掛載到玩家身上即可。注意要設(shè)置一些東西。如物體的標(biāo)簽,玩家的剛體等,相信unity開發(fā)者應(yīng)該很熟悉了。我已經(jīng)將工程打包成了unity插件包。由于網(wǎng)盤沒有會員了,上傳不了了。如果看不懂的額可以私信我,或加入QQ群:680645296,我發(fā)給大家。下面是制作出來的樣圖效果:
