もぐらが叩かれたときに★マークをパーティクルで飛ばすようにしました。

パラメーターのちょっとした変更だけでいろんな効果が作れるパーティクルはすごいですね。これはGUIならではの便利さと言った感じ。

そして得点を保存してランキング表示するようにしました。

PlayerPrefsというやつに保存しています。(iOSのNSUserDefaultsみたいなもん?)

PlayerPrefsはListとかは保存できないのでJSONにしてstringで保存。

これでもぐらたたきの課題としては一通り実装という感じかな?次は3Dを使ったものを作ってみたい。

soundflowerを使うことでQuickTime Playerで音声も取り込めるようになったので音入りで動画を取れるようになりました。

ただ、スクショみたいにアクティブなウィンドウを選択するとそのサイズがキャプチャされて欲しいがやり方がわからない。できないのかもしれない。

叩かれた時のモグラアニメーションやハンマーの効果音を追加。叩かれた時に★が散るようなパーティクルを付けたい。

それにしてもAnimatorの機能はすごい。GUIは少し迷ったけど、キャラの状態と各種アニメーションを紐付ける設計はわかりやすい。しかしExitは何なんだろう?別にExitに紐付けなくてもそこで終わるからどういう時に使うのかがわからなかった。

ゲームの点数など、ゲーム全体のデータはどうやって保存すべきか迷う。現在はとりあえず適当なクラスのpublic static変数に点数を保存してます。

次は点数を永続化してランキング表示をやる予定。

課題ゲームとしてはそれができたら一段落かな?

コードで動かしていたもぐらをAnimatorの使い方が分かったのでそちらで動くように変更。動きの試行錯誤はやはりタイムライン上の方がやりやすい。

次に出てくるまでの秒数をランダムにすることでゲームっぽくうごかしているんだけど、無茶な出方する場合があるので、こういう場合はどう制御するのがいいんだろう。

次はもぐらに当たり判定をつけたいです。

unityの勉強でもぐらたたきを作っております。

進捗は下記。

Webとゲームはよく出てくる用語も違いますね。Spriteぐらいは聞いたことあったけど、Maskとか発想がなかったんですが、教えてもらって上下するモグラを隠すMaskを追加することができました。

あと丸いタイマーをつけました。

Prefabというやつがいまいちわかってないです。クラスとインスタンスの関係に似てるようにおもうんだけど、Unity全体に渡って(Prefab自体も)どれがクラスでどれがインスタンスにあたるのかがイマイチわかっておりません。

次はランダムにもぐらが出てくるというのを作りたいです。

Unityのお仕事するかもなので、もぐらたたきゲームを作ってみようという課題をいただいて夜と土日を使って勉強しています。

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

public class MoleGenerator : MonoBehaviour {
    public GameObject molePrefab;
    public float diff = -2.28f;

    GameObject mole1;
    GameObject mole2;
    GameObject mole3;

    Vector3 startPosition1;
    Vector3 startPosition2;
    Vector3 startPosition3;

    void Start () {
        mole1 = Instantiate (molePrefab) as GameObject;
        startPosition1 = new Vector3 (-6.02f, -3.51f, 0);
        mole1.transform.position = startPosition1;

        mole2 = Instantiate (molePrefab) as GameObject;
        startPosition2 = new Vector3 (0.2f, -4.31f, 0);
        mole2.transform.position = startPosition2;

        mole3 = Instantiate (molePrefab) as GameObject;
        startPosition3 = new Vector3 (6.13f, -2.16f, 0);
        mole3.transform.position = startPosition3;
    }

    void Update () {
        Debug.Log (startPosition1.y);
        Debug.Log (mole1.transform.position.y);
        Debug.Log (startPosition1.y - mole1.transform.position.y);

        if (startPosition1.y - mole1.transform.position.y > diff) {
            mole1.transform.Translate (0, 0.08f, 0);
            mole2.transform.Translate (0, 0.08f, 0);
            mole3.transform.Translate (0, 0.08f, 0);
        } else {
            mole1.transform.Translate (0, -0.08f, 0);
            mole2.transform.Translate (0, -0.08f, 0);
            mole3.transform.Translate (0, -0.08f, 0);
        }
    }
}

もぐらが上にスーっっっ。

一定以上上にいったら下がるってやらないと。

同じもぐらが3匹いるからクラスにしたら良さそうですね。

後は、PCの性能に寄らずにスピードを調整したい。

さらに穴から出てくるまで隠しておく的なのはどうやるんだろう。