GameControl.csの元スクリプト

Unity
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class GameControl : MonoBehaviour {
	// ゲームクリアフラグ
	public static bool finishFlag;

	public enum STEP	// 状況を管理するSTEP
	{
		NONE = -1,
		SET,
		PLAY,
		FINISH,
		BOSS,
		CREATE,
	}

	private STEP step;          // 今のSTEP
	private STEP next_step; // 次のSTEP
	private float step_timer;   // 経過時間

	private int coins;              // コインの総数
	private int score;              // コインを取得した数
	private int left;					// コインの残り数

	// 画面に表示するテキスト
	public Text scoreText;
	public Text messageText;
	public Text timeText;

	public GameObject prefabBoss;
	public AudioClip coinSE;
	private GameObject player;
	private Animator animator;	// プレイヤーのアニメーション
	
	// Use this for initialization
	void Start () {
		finishFlag = false;
		coins = 0;			// コインの総数を設定
		score = 0;
		left = coins - score;
		// 残りコイン数を画面に表示
		scoreText.text = left.ToString();
		// プレイヤー情報取得
		player = GameObject.Find("Player");
		animator = player.GetComponent<Animator>();

		next_step = STEP.SET;	
	}
	
	// Update is called once per frame
	void Update () {
		step_timer += Time.deltaTime;		// 経過時間を取得

		// (1) STEP変化時
		if(next_step != STEP.NONE)
		{
			step = next_step;       // 現状に反映
			next_step = STEP.NONE;
			step_timer = 0.0f;

			switch (step)
			{
				case STEP.SET:
					next_step = STEP.PLAY;
					break;
			}
		}

		// (2) 繰り返し実行する処理
		switch (step)
		{
			case STEP.PLAY:
				// プレイ中は経過時間を表示
				timeText.text = string.Format("{0:000.0}", step_timer);
				break;
			case STEP.CREATE:
				// 未使用(コインを取得するとEnemyZoneから敵が出現)
				GameObject enemyZone = GameObject.Find("EnemyZone");
				enemyZone.GetComponent<EnemyZoneControl>().CreateEnemy();
				next_step = STEP.PLAY;
				break;
			case STEP.FINISH:
				// ゲーム終了
				scoreText.text = "";
				messageText.text = "CLEAR!!";
				animator.SetBool("Clear", true);

				// エンターキーでリスタート
				if (Input.GetKeyDown(KeyCode.Return))
				{
					SceneManager.LoadScene("GameScene");
				}
				break;
		}
	}
	// スコアカウント関数
	public void plusScore()
	{
		// 取得したコイン数を加算
		score++;
		//	 コインゲットの効果音
		AudioSource.PlayClipAtPoint(coinSE, player.transform.position);
		// コインの残り数を表示
		left = coins - score;
		scoreText.text = left.ToString();

		// コインの残り数によって処理を変える
		if (left == 0)
		{
			finishFlag = true;		// 残り0ならゲーム終了
			next_step = STEP.FINISH;
		}
		// コインの残り数によってボスを出現させてみる




	}
    
    // ボスを出現させる関数
	void CreateBoss()
	{
		// ボスの位置をプレイヤーの前方にする
		Vector3 pos = player.transform.position;
		pos += player.transform.forward * 10.0f;
		// ボス出現
		GameObject boss = Instantiate(prefabBoss);
		boss.transform.position = pos;
	}
}

コメント