public override void Enter(Player obj) { base.Enter(obj); obj.GetComponent <Animator>().speed = 0;//アニメーションをストップ obj.gameObject.layer = LayerMask.NameToLayer("IgnoreCollision"); obj.StopMove(); obj.DeadJump(); Action action = () => { var canvasTrans = GameObject.Find("Canvas").gameObject.GetComponent <Transform>(); FailedPanel panel = Instantiate(Resources.Load("Prefabs/FailedPanel"), canvasTrans) as FailedPanel; }; obj.StartCoroutine(GameManager.Instance.WaitAndAction(1.5f, action)); //ステージ情報のセーブ //進行状況が前の結果よりよかったらセーブする GameManager manager = GameManager.Instance; int nowProgress = obj.SceneManager.Progress; Scene thisScene = SceneManager.GetActiveScene(); StageInfo thisStageInfo = manager.StageInfo [thisScene.name]; if (thisStageInfo.progress < nowProgress) { thisStageInfo.progress = nowProgress; manager.ChangeStageInfo(thisScene.name, thisStageInfo); } SoundManager sound = SoundManager.Instance; sound.StopBGM(); sound.PlayJingle("GameOver"); }
/// <summary> /// 0.2秒执行一回合 /// </summary> /// <returns></returns> IEnumerator Turn() { var AnotherGameObj = GameObject.Find("Player1").GetComponent <TileHero>(); var TargetGameObj = GameObject.Find("Player0").GetComponent <TileHero>(); AnotherGameObj.ChangeCode("require 'script'"); while (turnnum < MaxTurn) { TextTurn.text = turnnum.ToString(); turnnum++; TargetGameObj.OnTurn(); TextBlue.text = GetScore(TileCtrl.EPlayer.Player0).ToString(); yield return(new WaitForSeconds(0.2f)); AnotherGameObj.OnTurn(); TextRed.text = GetScore(TileCtrl.EPlayer.Player1).ToString(); yield return(new WaitForSeconds(0.2f)); foreach (var tl in Map) { if (tl.Value.Player != TileCtrl.EPlayer.No) { continue; } int countA = 0; int countB = 0; for (int i = 0; i < 4; i++) { TileCtrl t; if (Map.TryGetValue(tl.Value.pos + dir[i], out t)) { if (t.Player == TileCtrl.EPlayer.Player0) { countA++; } if (t.Player == TileCtrl.EPlayer.Player1) { countB++; } } } if (countA == 4) { tl.Value.Player = TileCtrl.EPlayer.Player0; tl.Value.BuildingLevel = 3; tl.Value.Type = TileCtrl.EType.Building; } else if (countB == 4) { tl.Value.Player = TileCtrl.EPlayer.Player1; tl.Value.BuildingLevel = 3; tl.Value.Type = TileCtrl.EType.Building; } } } if (GetScore(TargetGameObj.Player) > GetScore(AnotherGameObj.Player)) { WinPanel.SetActive(true); } else { FailedPanel.SetActive(true); } }
private void Awake() { instance = this; }