こんにちは。レモンティーです。
ゴールの作り方だけみたい場合はコチラ↓のほうがいいかもしれません
sawalemounity.hatenablog.com
以下、前回の続きでゴールをつくっていきます。
予告通りゴールを作って、飾り付け以外の基礎は
ひとまずおわります。
ビルドのやり方を次回解説します。
今後は、
アニメーションやUIなどの飾り付けや、
後回しにしていたスクリプト、
自作モデルの作成とインポート
について書きたいと思います。
さて、今回の内容に入りましょう。
まずはゴールの作成です。
ちょっとマニアックですが、このシリーズで作っていたのは
遊●王の漫画にでてくるDe●th-Tです。
社長が主人公に復讐するためにつくりあげた
死のテーマパーク…でしたね。
その三番目のアトラクションがこれでした。(壁を忘れていましたが…)
なのでゴールは上の方に作ります。
ブロックに潰されないように、
重なっていくブロックを登って
ゴールを目指すゲームです。まんまですね笑
ただ、壁がないのでゴールは半透明のオブジェクトで表します。
Create>3D Object>Cube で、Cubeをつくります。
↓のようにお好みの形にして、高さ(y座標)を5くらいにします。
そしたら、↓を参考に、少しスケスケにします。
色はお好みで。
こんな感じに
そうしたら、CubeのタグをFinishにします。
そして、例のごとくスクリプト丸コピです。
PlayerMoovを全部消してこれに置き換えてください。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class PlayerMoov : MonoBehaviour { int OnFooting = 0; // Update is called once per frame void Update () { float x = Input.GetAxis("Horizontal"); float z = Input.GetAxis("Vertical"); if (Input.GetKeyDown(KeyCode.Space)) { if(OnFooting == 1) { GetComponent<Rigidbody>().AddForce(Vector3.up*5,ForceMode.Impulse); OnFooting = 0; } } Vector3 Direction = new Vector3(x, 0, z)*0.15f; GetComponent<Rigidbody>().AddForce(Direction, ForceMode.VelocityChange); Direction = Vector3.zero; if(transform.position.y <= -10) { SceneManager.LoadScene("GameOver"); } } private void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "GameOver") { SceneManager.LoadScene("GameOver"); } if(collision.gameObject.tag == "footing") { OnFooting = 1; } if(collision.gameObject.tag == "Finish") { Debug.Log("クリアです!!"); } } }
これで実行すれば、クリアした時に
みたいにメッセージがでます!
GameOverみたいにシーンを作って飛ばしてもいいですね!
これでひとまずおしまいです。
関連
ビルド
sawalemounity.hatenablog.com