Unity3D打地鼠

来源:互联网 发布:网站怎么做seo 编辑:程序博客网 时间:2024/05/09 06:22

比较简陋,上图






两个代码

1 MainScript

using UnityEngine;using System.Collections;public class MainScript : MonoBehaviour {public GameObject[]points;public UILabel scoreLable;public GameObject uiPoint1;public GameObject uiPoint2;public GameObject[]dishu;public UIPanel startPanel;public UIPanel gamePanel;public UIPanel pausePanel;public UIPanel scorePanel;public UIPanel helpPanel;public GameObject blue;public GameObject red;public GameObject zi;public float gameTime;public int score;UIPanel nowPanel;// Use this for initializationvoid Start () {nowPanel=startPanel;PauseGame();}// Update is called once per framevoid Update () {if(Input.GetKey(KeyCode.Escape)){Application.Quit();}gameTime=Time.time;if(Input.GetMouseButtonDown(0)){Ray myRay = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if(Physics.Raycast(myRay,out hit)){if (hit.transform.gameObject.tag == "blue" || hit.transform.gameObject.tag == "red" || hit.transform.gameObject.tag == "zi") {hit.transform.gameObject.renderer.material.color = Color.black;//蓝色50分if (hit.transform.gameObject.tag == "blue") {SendMessage ("AddScore", 50);}                    //红色100分if (hit.transform.gameObject.tag == "red") {SendMessage ("AddScore", 100);}                    //紫色200分if (hit.transform.gameObject.tag == "zi") {SendMessage ("AddScore", 200);}scoreLable.text=score+"";}}}}void OnClick(GameObject btn){if(btn.name=="StartButton"){TweenPanel(gamePanel);StartGame();gameTime=Time.time;}if(btn.name=="ScoreButton"){TweenPanel(scorePanel);}if(btn.name=="OptionButton"){}if(btn.name=="HelpButton"){TweenPanel(helpPanel);}if(btn.name=="ScoreReturnButton"){TweenPanel(startPanel);}if(btn.name=="AgainButton"){StartGame();TweenPanel(gamePanel);}if(btn.name=="PauseReturnStartButton"){TweenPanel(startPanel);}if(btn.name=="PauseReturnGameButton"){StartGame();            gameTime = Time.time;TweenPanel(gamePanel);}if(btn.name=="HelpReturnButton"){TweenPanel(startPanel);}if(btn.name=="GameScoreButton"){PauseGame();TweenPanel(scorePanel);}if(btn.name=="GamePauseButton"){PauseGame();TweenPanel(pausePanel);}}//移动界面的方法void TweenPanel(UIPanel panel){nowPanel.transform.position=uiPoint2.transform.position;nowPanel=panel;panel.transform.position=uiPoint1.transform.position;}//加分数,使用sendMessage调用void AddScore(int a){score+=a;}void StartGame(){for(int i=0;i<points.Length;i++){points[i].SetActive(true);}}void PauseGame(){for(int i=0;i<points.Length;i++){points[i].SetActive(false);}}}

2 GameScript

using UnityEngine;using System.Collections;public class GameScript : MonoBehaviour{public GameObject blue;public GameObject red;public GameObject zi;GameObject temp;float gameTime;public static float diShuLife;bool flag=true;// Use this for initializationvoid Start (){CreatDiShu();}// Update is called once per framevoid Update (){gameTime=Time.time;CheckDiShuBeBlack();}void CreatDiShu (){        //出现的概率百分之五十int i = Random.Range (1, 3);if (i == 1) {int j = Random.Range (1, 11);if (j == 1) {temp = Instantiate (zi, gameObject.transform.position, Quaternion.identity)as GameObject;temp.transform.parent=gameObject.transform;diShuLife=Time.time;flag=true;}if (j == 2 || j == 3 || j == 4 || j == 5 || j == 6) {temp = Instantiate (blue, gameObject.transform.position, Quaternion.identity)as GameObject;temp.transform.parent=gameObject.transform;diShuLife=Time.time;flag=true;}if (j == 7 || j == 8 || j == 9 || j == 10) {temp = Instantiate (red, gameObject.transform.position, Quaternion.identity)as GameObject;temp.transform.parent=gameObject.transform;diShuLife=Time.time;flag=true;}}else{StartCoroutine(Wait());}}void CheckDiShuBeBlack (){if(temp!=null){if(temp.gameObject.renderer.material.color==Color.black&&flag==true){StartCoroutine(DestoryDiShu());flag=false;}if(temp.gameObject.renderer.material.color!=Color.black&&gameTime-diShuLife>=1){StartCoroutine(Wait1());}}}IEnumerator DestoryDiShu (){yield return new WaitForSeconds(0.2f); Destroy(temp);yield return new WaitForSeconds(0.5f);CreatDiShu();}IEnumerator Wait(){yield return new WaitForSeconds(0.8f);CreatDiShu();}IEnumerator Wait1(){Destroy(temp);yield return new WaitForSeconds(0.5f);CreatDiShu();}}


点这里下载