U3D<<SPACESHOOT>>个人重制版。代码分享(四)游戏控制部分

来源:互联网 发布:淘宝杂货铺可爱名字 编辑:程序博客网 时间:2024/04/30 18:20
using UnityEngine;using System.Collections;public class GameController : MonoBehaviour {public GameObject hazard;public Vector3 spawnValues;public int hazardCount;public float spawnWait;public float startWait;public float waveWait;        //游戏计分结束重来的GUIpublic GUIText scoreText;public GUIText restartText;public GUIText gameOverText;private int score;private bool restart;private bool gameOver;void Start(){score = 0;gameOver = false;restart = false;gameOverText.text = "";restartText.text = "";UpdateScore ();StartCoroutine(SpawnWaves ());}void Update(){if (restart) {if (Input.GetKeyDown(KeyCode.R)){Application.LoadLevel(Application.loadedLevel);//会加载括号内的指定场景}}}IEnumerator SpawnWaves()//IEnumerator用来保证后面的WaitForSeconds(spawnWait);协同调用{yield return new WaitForSeconds (startWait);while (true) {for (int i=0; i<hazardCount; i++) {Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x, spawnValues.x), 0.5f, spawnValues.z);Quaternion spawnRotation = Quaternion.identity;Instantiate (hazard, spawnPosition, spawnRotation);    yield return new WaitForSeconds (spawnWait);}yield return new WaitForSeconds (waveWait);if (gameOver){restartText.text="Press 'R' for Restart";restart=true;break;}}}void UpdateScore(){scoreText.text = "Score:" + score;}public void GameOver(){gameOverText.text = "GAMEOVER!";gameOver = true;}public void AddScore(int newScoreValue){score += newScoreValue;UpdateScore ();}}

0 0
原创粉丝点击