unityであたり判定によるゲームオーバーの実装
今回はunityであたり判定によるゲームオーバーを実装していきたいと思います。
まずは
プレイするsceneとゲームオーバーのsceneを作ってください。
次にPlayerと敵(当たったらゲームオーバーになるオブジェクト)
にRigidbodyとBox Colliderをコンポーネントしてください。
では、scriptを打っていきます
using UnityEngine;
using System.Collections;
public class atarihantei : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.name == "オブジェクト名")
{
Application.LoadLevel("gameover");
}
}
}
このscriptをPlayerにコンポーネントしてください
そしたらPlayerがそのオブジェクトに当たったらゲームオーバーのsceneに移行すると思います。
unityでSceneの切り替えをする
今回はunityでSceneの切り替えについて話したいと思います。
まずはUIのButtonを作成しましょう。
そしたらscriptを打ちます
using UnityEngine;
using System.Collections;
public class start : MonoBehaviour
{
public void SceneLoad()
{
Application.LoadLevel("ここに切り替えたいScene");
}
}
こんな感じです
続いてこれをButtonにComponentしたら、
OnClickの中にもにscriptを入れる
さらにButtonを選択して
SceneLoad()を選択する。
こんな感じ
以上です
うまくいきましたか?
unityでplayerを操作する
今回はunityでplayerを操作できうようにしていきたいとおもいます。
まずは「ボタンを押したら」というscriptを打ちましょう。
if (Input.GetKey(KeyCode.UpArrow))
このようになります。
KeyCodeの後に押すボタンのキーコードを入力します。
今回は矢印↑のキーコードを使います。
そしたら本題
playerを動くようにしていきましょう
if (Input.GetKey(KeyCode.UpArrow))
{
transform.Translate(transform.forward * 0.3f);
}
このようになります。
「動く」というので大事なのが
Translate
というものです。
こんな感じで
using UnityEngine;
using System.Collections;
public class player: MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetKey(KeyCode..UpArrow))
{
transform.Translate(transform.forward * 0.3f);
}
if (Input.GetKey(KeyCode.RightArrow))
{
transform.Translate(transform.right * 0.3f);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.Translate(transform.right * -0.3f);
}
}
}
これで右と左と前に移動出来るようになりましたね。