前回までの作業がまだ済んでいない場合は、ブロック崩しの作成方法から前回までのチュートリアルを先に済ませてください。
何度かプレイしていると、ボールが壁に当たった後、水平に移動して事実上進行不能状態に陥ることがあります。
これは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.Physics
のbounceThreshold [Set]を選択 - ノードの種類選択メニューからActionを選択
- 作成したActionノードの遷移ポートをGame Startステートの入力ポートに接続
ここまで作成するとグラフは以下のようになっています。
完了
以上でLogic Toolkitチュートリアル「ブロック崩しの作成方法」は完了です。
学習内容
学習した内容を振り返ってみましょう。
- オブジェクトの挙動制御にLogic Behaviorコンポーネントを使用する
- 共通の挙動を使いまわすにはLogic AssetとLogic Playerコンポーネントを使用する
- シンプルな機能であれば、メンバーアクセスのスクリプト生成機能によりコーディング作業を挟まずに挙動が組める
- Actionノード、Stateノード、Branchノード(フロー制御)などがグラフ内に混在できる
- Stateの遷移条件判定をSignal Evaluationノードで共通化できる
- Blackboardの変数で値を共有できる
- BlackboardのData Link機能により複数のオブジェクト間で変数を共有できる
完了を投稿
ここまでの作業完了をSNSに投稿する場合はこちら。