ゲーム作ってるんだ 2019/12/01(日)

こんばんは

毎日少しずつUnityをいじいじしてるんですが、なかなかゲーム作るには時間がかかりますね。

だらだら進めるのもいけないので、朝一か寝る前にリマインダーに毎日やることを書いてます。
例えば、"〜の処理を実装する" だとか、"敵キャラクターの絵を描く" だとか。
ゲーム作成以外にも"ジムに行く" とか"あの本を一章分読み進める"とかも必ず毎日計画してます。

それらを全て終わらせたらポケモンスプラトゥーンするってサイクルでやってます。意外と遊ぶ時間取れてる。


今はこんな感じ

ぬるぬる動かしたいけど、無理なので絵二枚だけ書いてパラパラ動かしてる
f:id:satotucircle:20191201204109g:plain


ハリネズミを飛ばして梨を狩るゲームになっちゃいましたけど
このゲームのパクリ元わかる人いるかな

Unityでタッチした方向に向く大砲を作った

こんばんは

 

ワードプレスがなぜかSSL化できないのではてなブログにやってきました。

無料でするならはてなブログが一番だね。

 

今日はUnityでタッチした方向を向く大砲を作りました。

タッチした方向にパッと向くのではなく、徐々にヌルっと向いてくれるように実装する方法がなかなか見つけられず苦戦しました。

f:id:satotucircle:20191124170825g:plain
こんな感じ

    void Update()
    {
        // 向き変更処理
        if (Input.GetMouseButton(0))
        {
            Vector3 basePosition = this.transform.position; // キャラクタ位置
            Vector3 touchPosition = Input.mousePosition; // タッチ位置
            Vector3 lookTargetPosition = Camera.main.ScreenToWorldPoint(touchPosition);


            lookTargetPosition.z = basePosition.z; // 2Dの時はz位置を揃える

            Quaternion lookat = GetLookAt(basePosition, lookTargetPosition);
            //this.transform.rotation = GetLookAt(basePosition, lookTargetPosition);

            float step = rotSpeed * Time.deltaTime;
            Quaternion rotation = Quaternion.RotateTowards(this.transform.rotation, lookat, step);
            this.transform.rotation = rotation;

        }

        // 移動の処理
        float x = Input.GetAxis("Horizontal");
        float y = Input.GetAxis("Vertical");

        Vector3 position = transform.position;
        position += new Vector3(x, y, 0) * Time.deltaTime * moveSpeed;
        transform.position = position;
    }

    // 回転させる
    private Quaternion GetLookAt(Vector3 basePosition, Vector3 lookTargetPosition)
    {
        Vector3 diff = (lookTargetPosition - basePosition).normalized;
        return Quaternion.FromToRotation(Vector3.up, diff);
    }

これでパッとではなく、ぬるっとタッチした方向を向いてくれるはず。

これでゲーム作りたい。