ちょこ

学生です。メモっぽく。

Unity 2Dゲーム開発日記 8日目 ~攻撃~

近接攻撃実装しよう。

近接攻撃用のScriptに左向いているときは反転させるように書いたら、右向きのときに出したオブジェクトが左向いたときに方向が変わってしまうことに気づいた。
これは、右向きと左向きの攻撃オブジェクトの生成を別にするべきなのか?
つまり、左向きのときに最初から逆向きのオブジェクトを生成してしまえばいいのでは、と考えた。
しかし、反転させて生成するのはあんまり調べてないが無理そうだった。
その途中、フラグ立てすれば良いのではと思いつく。
結果、出してから向きが変わることはなくなりました。めでたしめでたし。

近接攻撃時に出したオブジェクトにぶつかる。

剣振ったときに炎っぽいものを出してます。
それにぶつかって移動が止まるので直す。
LayerってのをPlayerと炎で変えればいけるしょ!
と思い変えると、あれ、まだぶつかる。
どうやら設定が必要らしい。
Edit → Project Settings → Physics 2Dを見てみるとチェックが色々あるぅ。
どうやらここでレイヤー同士の当たり判定を設定できるみたいです。

というわけで、自分の動いてるとこ見せるのはすぐできないのでやりませんが、近接攻撃やりたかったことはできました!
今回は文字ばっかりで面白みの無い内容になってしまった。

やったこと

  • 近接攻撃実装(近接攻撃用Script作ったり)

次やりたいこと

  • ステータスとかの能力アップ機能(データの保存とか)

先に

  • Wave
  • 背景
  • ゲーム終了画面

を作りたいと思う。

Transform系調べた。

特定位置へ。

transform.localPosition = new Vector3(1, 1, 1);
(1,1,1)に移動させる。

動かすなら。

transform.Translate(Vector3.up * speed);
上にspeedの速さで動く

あと間違えやすいのが

transform.position.x = 1;
みたいにpositionは単体での指定はできないこと。
transform.position = new Vector3(1, transform.position.y, transform.position.z);
って感じに全部書く必要がある。