ゲーム制作日誌⑥ 必要な機能の実装-3[オリジナル作品]

こんにちは!M-Jadeです!

制作日誌⑤の続きをやっていきたいと思います。

ゲーム制作日誌⑤ 必要な機能の実装-2[オリジナル作品] 
こんにちは!M-Jadeです! 制作日誌④の続きをやっていこうと思います。 持ち上げたオブジェクトを投げつける これは前回...

オブジェクトが衝突した位置を取得する

ContactPoint2D.pointを使います。

衝突した位置のX軸が現在位置のX軸よりも左側だったら、左側にノックバックさせ、右側だったら右側にノックバックさせます。

Contribute to Throwing development by creating an account on GitHub.

投げたオブジェクトの動きを静止させる

  • ボタンを押すと、投げたオブジェクトをRigidbodyConstraints2D.FreezeAllで停止させます。
  • オブジェクトが止まっている時にもう一度ボタンを押すと、Constraints2D.Noneで再び動き出すようにしています。
  • 止まっているかどうかはbool型の変数stoppedで判断させます。
  • 止まっていることが分かりやすいように、停止させた時に対象オブジェクトの色を黄色に変化させます。再び動き出したら色が元に戻ります。

以上の処理を、bool型を引数とするStopメソッドで行います

ちなみに、止まっているオブジェクトを持ち上げたら、再び動き出した時の処理を実行するようにしています。

接地判定方法の変更

Physics2D.Linecastを使ってGroundレイヤーを判別することで接地判定をしていましたが、ThrowedObjectレイヤーのオブジェクトの上でもジャンプできるようにしたいので、接地判定トリガーを作ってそっちで判別することにしました。

  • 新たに空のオブジェクトを作ってPlayerの子オブジェクトにします
  • BoxCollider2DをアタッチしてisTriggerにチェックを入れる
  • GroundTriggerスクリプトをアタッチします。このスクリプトで接地しているかどうかを判断して、グローバル変数に代入します。
  • Playerスクリプトで子オブジェクトのGroundTriggerを取得し、GroundTrigger側の変数を使ってジャンプできるかどうかを判断
Contribute to Throwing development by creating an account on GitHub.
スポンサーリンク
レクタングル(大)広告1
レクタングル(大)広告1

シェアする

フォローする