
- 作者: BATA,まつだす
- 出版社/メーカー: 翔泳社
- 発売日: 2016/01/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
序文
『Unity5ゲーム開発レシピ』16日目。
W杯より宝塚記念で和田竜二騎手が17年ぶりにG1勝利したほうが嬉しいです。
競馬も最近あんまり…どうでもよくなってるんですけど。
jockey.kankeli.net このサイトも軽くしたいなぁ
GitHub
進捗
- Part01 基本編
- Chapter11 演出を強化する
- Chapter12 覚えておくと便利な基本機能
(学習時間:2時間)
コード実装部分
\Chapter1\Assets\Scripts\BattleManager.cs
using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using UnityStandardAssets.ImageEffects; public class BattleManager : MonoBehaviour { int battleStatus; const int BATTLE_START = 0; const int BATTLE_PLAY = 1; const int BATTLE_END = 2; float timer; public Image messageStart; public Image messageWin; public Image messageLose; // 敵を倒した数。Enemyスクリプトでカウントアップ public static int score; // クリア条件となるスコア int clearScore; public Camera resultCamera; public GameObject resultCameraObject; void Start() { battleStatus = BATTLE_START; timer = 0; messageStart.enabled = true; messageWin.enabled = false; messageLose.enabled = false; score = 0; // 敵の最大生成数をクリア数にする clearScore = EnemyInstantiate.instantiateValue; // ゲーム開始時はリザルト用カメラをオフにする resultCamera.enabled = false; // ゲーム開始時は効果をオフにする Camera.main.GetComponent<ColorCorrectionCurves>().enabled = false; Camera.main.GetComponent<DepthOfField>().enabled = false; resultCameraObject.GetComponent<ColorCorrectionCurves>().enabled = false; resultCameraObject.GetComponent<DepthOfField>().enabled = false; } void Update() { switch (battleStatus) { case BATTLE_START: timer += Time.deltaTime; // 時間経過でメッセージを消して状態移行 if (timer > 3) { messageStart.enabled = false; battleStatus = BATTLE_PLAY; timer = 0; } break; case BATTLE_PLAY: // スコアが出現数に到達したら勝利 if (score >= clearScore) { battleStatus = BATTLE_END; messageWin.enabled = true; // 勝利時にリザルト用カメラに切り替える resultCamera.enabled = true; } if (PlayerAp.armorPoint <= 0) { battleStatus = BATTLE_END; messageLose.enabled = true; } break; case BATTLE_END: timer += Time.deltaTime; if (timer > 3) { // 動きを止める Time.timeScale = 0; if (Input.GetButton("Fire1")) { SceneManager.LoadScene("Title"); // 動きを再開する Time.timeScale = 1; } // 遷移可能状態になったらカメラの効果を有効にする if (messageWin.enabled == true) { resultCamera.GetComponent<ColorCorrectionCurves>().enabled = true; resultCamera.GetComponent<DepthOfField>().enabled = true; } else { Camera.main.GetComponent<ColorCorrectionCurves>().enabled = true; Camera.main.GetComponent<DepthOfField>().enabled = true; } } break; default: break; } } }
- その他実装部分
実行結果
感想
やったこと。
- 勝利/敗北時のエフェクト実装
とりあえず基本編がこれで終了。
次回からはユニティちゃんを使う応用編に入っていくようだ。
よりTips的な要素が強くなっていくのかな?と思っているがあんまりよくわからない。
ちなみに基本編の最後となるChapter12は操作画面の使い方のTipsなどの内容だった。
通し番号が087から始まったので、「なるほど!基本編は100までで終わるのか!」と思って読み進めていったら、098で終わりやがった。
あと2つなんか頑張って考えろよ!
カロリーメイトください。