Unity1週間ゲームジャムに参加してみた 3日目

シェアする

  • このエントリーをはてなブックマークに追加

前回、なんとなーく画面のこんな感じーというのをぼんやりと配置してみました。

3日目はいよいよコードを書いていって、やりたいことができるかどうか確認していきます。
できなかったらまた別の方法考える! 素人故に、撤退判断は早めに……!

Contribute to unity3d-jp/FirstTutorial development by creating an account on GitHub.

前に作った玉転がしゲームチュートリアルを参考に、Great、BADのフラグを取得します。

3本の帯に、上から順に「pants」「Great」「BAD」とタグをつけ、
それぞれのBox Coliderの「Is Trigger」にチェック。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Pants : MonoBehaviour {

public float m_speed; //移動の速さ
public float judge; //判定用のポイント

// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
//m_speed分の速さで下に移動
var velocity = new Vector3 (0, -1) * m_speed;
transform.localPosition += velocity;
}

//トリガーとの接触時に呼ばれるコールバック
void OnTriggerEnter(Collider hit){

//接触対象がGreatタグなら変数に1
if (hit.CompareTag ("Great")) {
judge = 1;

//BADなら変数に2
}else if (hit.CompareTag ("BAD")) {
judge = 2;
}

}
}

こんな感じにコードを書いて、Pantsオブジェクトに割り当てます。

下がってぶつかるごとに、Judge変数に1や2が入ります。
ボタンを押したときに、Judge変数が1だったらGreat、2だったらゲームオーバーです。
難易度調整の為にも、開始直後に押してクリアできる仕組みにしたいと思います。面が進むにつれ、③、②、①のカウントダウン後、ものすごい勢いでズボンが下がる予定なので。

次はボタンの方のコードを書いていきます。

上の方に

using UnityEngine.SceneManagement; //シーン変更の為のライブラリみたいなもの

を追加して、

public void PushButton(){

if (judge == 1) {
SceneManager.LoadScene ("Great"); //Greatのシーンに移動
} else if (judge == 2) {
SceneManager.LoadScene ("GameOver"); //GameOverのシーンに移動
} else {
SceneManager.LoadScene ("Clear"); //クリアシーンに移動
}

}

本当はコード分けた方がいいのだろうけれど、Judge変数の値をどうやって渡したらいいか分からなかったので、同じファイルに書いちゃいました。

書き終わった後はヒエラルキーにCreateEmptyで「TitleManager」というものを作り、さっき作ったコードを「Add Component」から追加。

ドラッグ&ドロップで追加し、SceneLoadを選択します。

これでシーンロードは上手く行った……けれど、今度はクリア条件のタグ取得が上手く行かない!やっぱりスクリプトを分けなければいけないのか……!

上手く治すことができずに、タイムアップ。
背景を幅1000×高さ750で作成しなおしだけして、3日目終了!

ついでに、ツイッターでアイコン協力者を募集してみます。
ゲームにちらっと自分が出てたらうれしいかなぁと思ったので。
無料公開分は、そーゆー遊び心加えて作っていきたいなぁ。

4日目に続く→

前回、シーンを移動するコードを書き上げたところでタイムアップに。 4日目ですが体調不良の為、帰ってご飯食べたらもう何もできず……orz ...

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

%d人のブロガーが「いいね」をつけました。