public void ChangeState(TowerBattleState changeState) { state = changeState; if (state == TowerBattleState.end) { audioSource.clip = gameEndSound; audioSource.Play(); endUIPanel.SetActive(true); StopCoroutine("UpCameraPos"); uiManeger.SetResultScore(scoreManeger.PutScore.ToString()); Time.timeScale = 0; } if (state == TowerBattleState.reset) { if (stuckObj.Count > 0) { foreach (var item in stuckObj) { Destroy(item.gameObject); scoreManeger.ResetScore(); } } stuckObj = new List <GameObject>(); Destroy(putObj.gameObject); putObj = null; Start(); } if (state == TowerBattleState.wait) { SetNextObj(); ChangeState(TowerBattleState.preparation); } }
// Update is called once per frame void Update() { if (state == State.wait) { if (!audioSource.isPlaying) { audioSource.Play(); } if (Input.GetKeyDown(KeyCode.Space))//ゲーム開始 { player.gameObject.SetActive(true); player.GetComponent <Player>().SetStart(); mainCamera.GetComponent <MainCamera>().SetStartPos(); SetState(State.playing); scoreManeger.ResetScore(); } if (Input.GetKeyDown("d")) { descpage = 0; descPanel.SetActive(true); SetState(State.desc); descText[descpage].SetActive(true); for (int i = 0; i < descText.Length; i++) { if (i == descpage) { continue; } descText[i].SetActive(false); } } } if (state == State.end) { audioSource.Stop(); if (Input.GetKeyDown(KeyCode.Space)) { SetState(State.wait); stageManeger.ResetStageList(); state = State.wait; } if (Input.GetKeyDown("t")) { url = "https://twitter.com/intent/tweet?text=" + scoreManeger.SwimDistance.ToString() + "泳いで、" + scoreManeger.FlockScore.ToString() + "匹の群れを救いました!" + "&hashtags=" + "FlockConnect,unity1week"; Application.OpenURL(url); } } if (state == State.desc) { if (Input.GetKeyDown(KeyCode.Space)) { descpage++; if (descpage > descText.Length - 1) { descPanel.SetActive(false); SetState(State.wait); return; } descText[descpage].SetActive(true); for (int i = 0; i < descText.Length; i++) { if (i == descpage) { continue; } descText[i].SetActive(false); } } } }
// Use this for initialization void Start() { scoreManeger.ResetScore(); GameState = (State)0; ScoreManeger.ClearStageName = SceneManager.GetActiveScene().name; }