素人がUnityでブロック崩し作ってみた_-_⑦
ゲーム内容以外はよいかんじになってきたな。笑
ひとつ前の記事で、ここまでやるぜ!と意気込んでみたけど、また何とかたどり着けた。
小規模な目標でやっていくとモチベ維持できていい感じ。
※前回の記事はこちら
今日の目標
今日掲げた目標はこちら
- ゲームオーバー後のリトライ、タイトルに戻るボタン&遷移追加
- ゲーム画面中の一時停止、タイトルに戻るボタンの追加
- タイトルからゲーム画面遷移後の暗くなる件の解決
- なんか音出してゲーム感をだしたい
何とか形になりました。
完成形がこちら。
①ゲームオーバ後のリトライ、タイトルに戻るボタン&画面遷移実装
これはタイトル画面からゲーム画面に遷移するのと同じ仕組みを利用したので、すぐ解決。
復習だけど、シーン遷移はこれで可能。
SceneManager.LoadScene("GameScene");
※「GameScene」がシーン名
オブジェクトをクリックしたときの判定にはRaycastを利用する
※ここらへんでRayについてはまとめられています
②ゲーム画面中の一時停止、タイトルに戻るボタンの追加
以下参考に、実装
UIのPanelとButtonを配置し、Clickイベントにオブジェクトを表示/非表示にする処理を記述
gameObject.SetActive (false);
※falseが非表示でtrueが表示
gameObjectはpublicにしてUnity側から指定するか、Find("オブジェクト名")とかでとってきて変数化しておけばよいです。
③タイトルからゲーム画面遷移後の暗くなる件の解決
シーン移動を行った時に暗くなって欲しく無いシーンを開いて、Window>Lighting>Settingsをまず開く。
そのあと、Settings画面で、下の方にある「Auto Generate」のチェックを外し、横の「Generate Lighting」をクリックする。
クリック後にロードがあるため、それを待ってシーンを保存すればOKとのこと。
やってみたら、Unityで見えている状態とゲーム実行時の状態が同じに!!!!!
※以下参考にしてます。白うさぎのIT学習帳さんありがとうございます
④なんか音出してゲーム感をだしたい
UIコンポーネントのAudio Sourceを使っています。
配置して、音をオブジェクトにドラッグアンドドロップでひもづけるだけで、ゲーム中に流れる音楽は簡単に流せる。シーン起動時に音を出すかどうかの設定を
「Play On Awake」でチェックぼっくして設定できるからここいじるだけ。
当たった瞬間にまたは、ボタン押したときに音を出すソースはこんな感じ
//public変数で効果音をUnityから設定
public AudioClip audioClip1;
// 当たったときの処理内に以下を追記
audioSource.PlayOneShot(audioClip1);
フリー音楽で有名な、魔王さんからいくつか拝借
※Unityで音を鳴らす場合には以下参考にしてやりました
http://qiita.com/amano-kiyoyuki/items/43fa92cce1a44a8030b5
今日も何とか形になってよかった。
あとはブロック崩し自体のゲームシステムに少し手を加えて、
もう少しゲームっぽくしたら一旦完了かなー
出来上がり次第でどう思うかだけど。笑
一旦今日はここまでー
また明日以降やりますーノシ