
- 作者: BATA,まつだす
- 出版社/メーカー: 翔泳社
- 発売日: 2016/01/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
序文
『Unity5ゲーム開発レシピ』14日目。
起きようと思った瞬間ふくらはぎがつって起きられなくて、そのまま二度寝して午前中つぶしました。
GitHub
進捗
- Part01 基本編
- Chapter10 シーンを遷移させる
(学習時間:2時間)
コード実装部分
\Chapter1\Assets\Scripts\BattleManager.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; 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; void Start() { battleStatus = BATTLE_START; timer = 0; messageStart.enabled = true; messageWin.enabled = false; messageLose.enabled = false; score = 0; // 敵の最大生成数をクリア数にする clearScore = EnemyInstantiate.instantiateValue; } 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; } 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; } } break; default: break; } } }
- その他実装部分
実行結果
www.youtube.com
酔うかも。閲覧注意。
この戦法以外で勝てる気がしない。
感想
やったこと。
- タイトル画面の作成
- ゲームクリア・ゲームオーバー条件の実装
- ゲームクリア・ゲームオーバー画面の実装
エネミーのプレイヤー追跡アルゴリズムが単純だから、ひたすら動き回れば被弾確率がかなり低くなることに気づきました。
結果、動画みたいなやり口になってます。
今までも結構あったんですけど、参考書に誤植が目立ってきましたねぇ。
"UI Text"と書くべきところを"UI Image"って書いてる!と思ったら、数ページ後には"UI Image"と書くべきところを"UI Text"と書いてたりします。笑
サンプルゲーム自体は参考書にあるまじき完成度なだけに惜しいです。
あーなんか頭ぐるんぐるんしてきた。
カロリーメイトください。
BGM
嘘と煩悩 / KREVA
www.youtube.com ラップやれラップ