7. PhysicsのBounce Thresholdの設定

前回までの作業がまだ済んでいない場合は、ブロック崩しの作成方法から前回までのチュートリアルを先に済ませてください。

何度かプレイしていると、ボールが壁に当たった後、水平に移動して事実上進行不能状態に陥ることがあります。
これはUnityのPhysicsの設定により、衝突時の速度が一定値以下の場合は壁方向への速度を0にする仕様が働いているためです。
ブロック崩しでは必ずバウンドしてほしいため、PhysicsのbounceThresholdを0にすることで、この問題を解決できます。

設定するには以下のいずれかの方法があります。

  • Project Settingsを設定
  • メンバーアクセスによる設定

Project Settingsを設定

シーンによって変更する必要がない場合は、Project Settingsで設定することで簡単に解決できます。

  • メニューからEdit/Project Settingsを選択
  • Physics/Settingsカテゴリを選択
  • Game Objectタブを選択
  • Bounce Thresholdフィールドを0に変更

メンバーアクセスによる設定

シーンによって変更する必要がある場合は、メンバーアクセスによりPhysics.bounceThresholdを設定できます。

  • Main Logicオブジェクトを選択
  • Startノードの実行ポートをドラッグ&ドロップし、ノード作成メニューを開く
  • Membersタブを選択
  • 検索欄にPhysics bounceThresholdと入力
  • 一覧からUnityEngine.PhysicsbounceThreshold [Set]を選択
  • ノードの種類選択メニューからActionを選択
  • 作成したActionノードの遷移ポートをGame Startステートの入力ポートに接続

ここまで作成するとグラフは以下のようになっています。

完了

以上でLogic Toolkitチュートリアル「ブロック崩しの作成方法」は完了です。

学習内容

学習した内容を振り返ってみましょう。

  • オブジェクトの挙動制御にLogic Behaviorコンポーネントを使用する
  • 共通の挙動を使いまわすにはLogic AssetとLogic Playerコンポーネントを使用する
  • シンプルな機能であれば、メンバーアクセスのスクリプト生成機能によりコーディング作業を挟まずに挙動が組める
  • Actionノード、Stateノード、Branchノード(フロー制御)などがグラフ内に混在できる
  • Stateの遷移条件判定をSignal Evaluationノードで共通化できる
  • Blackboardの変数で値を共有できる
  • BlackboardのData Link機能により複数のオブジェクト間で変数を共有できる

完了を投稿

ここまでの作業完了をSNSに投稿する場合はこちら。