どもども!テスト週間が始まったFOMR_07ですよ!
早く解放されたい・・・・・(T-T)
まぁ僕はテスト勉強よりもゲーム制作をしたいからするんですけどね。
・・・・・(;゚ロ゚)
というわけでやっていこう!!
(どういうわけだ・・・)
前回↓はカメラを動かすコードを書きましたね。
【Unity】最強のゲームクリエイターに俺はなる | カメラをPlayerに追従させよう - FORM_07’s blog
今回はサフィアちゃんに攻撃させてみたいと思います!
まずはエフェクトを描かないとナ。。。。
ドット絵作り慣れてないからこの作業が一番大変だったりする。。。
適当につくってオブジェクトにしてみた。
Sapphireの子として設定して、サフィアちゃんと一緒に動くようにした。
あとは攻撃したときだけ表示してほしいから、、、
「Sapphires_5」の左にある四角のチェックをはずす。
そうするとこんなかんじで見えなくなる。なくなったわけではない。
さて、ここからはコード書き書きタイムなんですが、、、その前に、、、
今回せっかくInput Systemを使っているので、この機会にちょっと色々試してみよう。
まず、Input Actionsというものがあるらしい。。。
どうやらあらゆる操作をActionという単位で管理して、それをMapというグループにわけることで、スクリプトをかくときに入力を意識しなくて済むのだそうで・・・
ふむ、よぉわからんぞ。
これあれだ。とりあえずやってみたらわかるやつだ。やってみよ。
まずはそのInput Actionsを使うためにAssetsのCreateからInput Actionsを選択する。
するとなにやら見たことのないウィンドウが。。。
・・・・・・・・・( ・_・)
ほぉ。たしかにAction MapsとActionsという項目があるな。
試しにAction MapsにPlayerを、ActionsにMove、Jump、Atackを入れてみたけど、要はこれあれだな。
Player操作するときはSPACEキーでジャンプ、メニュー画面ではSPACEで選択、みたいな仕様にするとき、Playerとメニュー画面を別々のMapにしてそれぞれのMapの中にActionとしてSPACEキーを押すとどうなるか設定しておけばなんやかんやで便利ってことか。
多分
で、右っかわのAction Propertiesが各Actionの設定だな。みたかんじ。
やってみよ。
・・・・・・・・(。_。)カタカタ
ちょっといじくってみた。
Moveは今後連続値を扱うかもしれないからAction TypeをValueにして、2D横スクロールだからControll TypeはAxisに。
JumpとAttackはButtonにしといたよ。
そしたらcsファイルが勝手に作られた。
これ多分あれだな。触らない方がいいやつだな。
多分やけど今設定したInput Actionsをスクリプトにしてくれたんやおな。
じゃぁあとはサフィアちゃんにアタッチするスクリプトを書くだけだな。
以前書いたPlayerControllerに記述するか。
というか、ちょっと聞いて下さいよ。
今までVisual Studioを使ってコーディングしてんだけどね、なんかおかしいなと思ってたの。
そしたら案の定だったの。Unityと連携できてなかったの。
はぁ・・・(´д`)
EditのPreferenceから設定するなんて聞いてないよ。。。それか導入の仕方間違ってたのかな。。。
まぁいいか。。。
さて、プログラミングのお時間だ~。
これでいいはず。。。
public変数はこんなかんじ↓に調整しといた。
敵と攻撃エフェクトにも当たり判定をつけて、、、(敵にもRigidbodyつけといた)
実行!!
ん、、、サフィアちゃんの操作はいい感じだけど、、、
敵が消えてくれない・・・・・・・(。_゚)
あれ、子のColliderの判定って親も取得できるんだよね???
数時間後
やっとわかったぁぁああああああぁぁ~~~~。。。
まず大前提に、OnTriggerEnterじゃなくてOnTriggerEnter2D。
そんなん知らんて・・・・・(T-T)
そしてフラグリセットのタイミングが悪かった。
ああああああああああ長かった。
でも勉強になったな。Input Actionsは思ってたより簡単に使えたし。。。
よくわかってない部分は多いけども・・・・ま、そこは追々ね。
ってかよく考えたら、非アクティブ状態はColliderもはたらいてないからフラグ管理なんてしなくていいのか。
消しときました。
よ~し今回はここまで!!!
難航しました。こんな簡単なことで。
これからこういうことも日常茶飯事になるのかなぁ~・・・なんて。
次回はPlayerの操作をレベルアップさせたい。