実はこの記事を書いている3日前、、
敵のジャンプモーションを作った私はプレイヤーのジャンプの実装も使用と思ったのですが。。
で き ま せ ん で し た orz
たった3日前ですが、理解があさかったんですね。
前回の反省を踏まえアプローチ方法を変えて再度トライです!
一重にジャンプ処理といっても自分がやりたいジャンプはもちろんマリオのような山型に力が加わる処理です。
前回はRigidbodyの重力操作でなんとかしよとおもいましたが、理想のジャンプに至らなかったのです。
なので今回は
- player.Rigidbody2Dの重力を切る
- ジャンプモーションを作る
- player.gameObject.taransform制御処理を自前で書く
ようは重力制御でなんとかしようと思ったのが間違いだったんやっ!
(すいません本当にこれでいいかはさっぱり不明です)
では早速
player.Rigidbody2Dの重力を切る
これを切るともちろん今まで敵にぶつかった際に飛んでいたのが地面に落ちてきません。
とりあえずこの状態にしておきます。
ジャンプモーションを作る
前にスライスしておいたSptiteを使用してジャンプのモーションを作ります。
[http://raharu0425.hatenablog.com/entry/20140108/1389177660:title]
ジャンプを判断するフラグを作ります
モーションができたらAnimatorでモーションの紐付けを行ないます。
紐付けはこんな感じで
player@walk > player@jump : isJump = true
player@jump > player@walk : isJump = false
player@jump > player@attack : isAttack = true
playermove.cs
+が追加行です
- ジャンプをしたらisJumpフラグを立てて、初速を初期化します
- ジャンプフラグをアニメーションに差し込んで
- 初速に対して係数をフレーム毎にマイナスしていきます
- 地面に着いたらisJumpフラグをfalseにします。
- ジャンプ中じゃないのに宙に浮いている場合は下に力を加えます
こんなかんじですかね?
さぁエミュレートしてみましょう!
いいです!スバラッ!!
ジャンプを制御するのは、transformを自前で制御してあげるのが楽そうです
他にいい感じのジャンプの実装方法が有れば是非教えてくださいm(_ _)m
今回はこれまで、次回はなにしようかな。。
会社のHさんがイラスト書いてくれる!といっていたのでもしできたらタイトル画面でも作りたいです