手册:调试可视化脚本

本文ではビジュアルスクリプトで問題が発生した際のデバッグ方法について解説します。

メッセージ出力 (PrintMessageToConsole) アクションを駆使しよう

メッセージ出力はデバッグ専用のアクションです。
このアクションが実行されると、下部パネルの出力 (Output) に任意のメッセージを出力できます。
問題が発生しているステートにこのアクションを設定し、到達できているかを確認しましょう。

  • メッセージが出力されない場合
    ステートに到達できていない=このステートへの遷移リンクに問題があります。
  • メッセージが出力される場合
    ステートには到達できているので、実行アクション、または攻撃判定や当たり判定などのノード設定に問題があります。

当たり判定を表示しよう

デバッグメニューでコリジョンを表示 (Visible Collision Shapes) にチェックを入れることで、当たり判定が可視化されます。当たっているはずなのに動かない、衝突をすり抜けるなどの衝突周りの問題は、これをオンにして確認しましょう。

原因の特定に役立つアクション:テキスト表示 (DisplayText)

テキスト表示アクションでは、変数を表示することができます。持続時間を無制限に設定しておけば、ステートが変わってもずっと表示されますので、デバッグにも有用です。
攻撃が当たっているはずなのにダメージが入らないなあ、といった時には HP の変数を可視化して確認しましょう。

間違えやすい設定項目:CollisionLayer と CollisionMask

当たっているはずなのに判定がうまくいかずにリンクしないぞ?というときは CollisionLayer と CollisionMask を確認してみてください。

壁判定との接触: Collision2D 同士の接触を検知します。自身の CollisionMask が、接触対象のオブジェクトの CollisionLayer と一致しているか確認してください。

攻撃判定との接触: 自身の HitCollision と、接触対象のオブジェクトの AttackCollision 同士での接触を検知します。自身の HitArea2D のマスクと対象の AttackArea2D のレイヤーが一致しているか確認をしてください。

当たり判定との接触: 自身の AttackCollision と対象となったオブジェクトの HitCollision 同士での接触を検知します。自身の AttackArea2D のマスクと対象の HitArea2D のレイヤーが一致しているか確認をしてください。

CollisionShape と CollisionMask について詳しくは以下を設定してください。

1 个赞