無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、エラーや警告のメッセージをデバッガパネルなどに出力できる push_error 関数と push_warning 関数の使用例を、標準出力を行う print 関数と比較しながら、その表示結果の違いやメリットについて紹介します。
![](https://compota-soft.work/wp1/wp-content/uploads/2024/09/GodotEngine4.3-公式サイトの一部-20240911.png)
※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご使用ください。
push_error, push_warning 関数とは
push_error 関数は Godot のデバッガ下パネルなどにエラーメッセージを追加します。
エラーメッセージは出力されますが、実行している処理は停止しません。
Pushes an error message to Godot’s built-in debugger and to the OS terminal.
Note: This function does not pause project execution. To print an error message and pause project execution in debug builds, use
assert(false, "test error")
instead.Godot の組み込みデバッガと OS ターミナルにエラー メッセージをプッシュします。
注: この機能はプロジェクトの実行を一時停止しません。エラー メッセージを出力し、デバッグ ビルドでプロジェクトの実行を一時停止するには、代わりにassert(false, "test error") を使用します。@GlobalScope — Godot Engine (4.x)の日本語のドキュメント #method-push-error と Google 翻訳
push_warning 関数は Godot のデバッガ下パネルなどに警告メッセージを追加します。
void push_warning(…) vararg 🔗
Pushes a warning message to Godot’s built-in debugger and to the OS terminal.
Godot の組み込みデバッガと OS ターミナルに警告メッセージをプッシュします。@GlobalScope — Godot Engine (4.x)の日本語のドキュメント #method-push-warning
使用例
以下は、CollisionObject2D 派生のノードが持つ当たり判定領域の Shape2D リソースを得て、当たり判定を行う処理の一部です。
得た Shape2D リソースの数が 0 ならば、何もしないで処理を終えていましたが、潜在的なバグの可能性もあるので「リソースが見つからなかった」とメッセージを出力するようにします。
同じメッセージを print, push_error, push_warning の3つの関数で出力する処理を追加しました。
# キャラクターの当たり判定領域 (Shape2D 派生リソース) の配列を取得
var shape_array = SakuraCrowdCollisionObject2D.get_shape2d_all(body)
#var shape_array: Array[Shape2D]
if shape_array.size() < 1:
print("SakuraCrowdTileMapLayer.get_entered_tiles: Shape2D のリソースがありません")
push_error("SakuraCrowdTileMapLayer.get_entered_tiles: Shape2D のリソースがありません")
push_warning("SakuraCrowdTileMapLayer.get_entered_tiles: Shape2D のリソースがありません")
return entered_tiles # 0 個の場合は判定できないので空の配列を返します。
エラー・警告メッセージとして出力するメリット
print 関数で出力すると、出力パネルに標準出力メッセージとしてカウント(出力タブの右側の!アイコンの数字)されながら出力されますが、メッセージをクリック・マウスオーバーしても何も起きません。
![Godot4 print 関数での出力の例](https://compota-soft.work/wp1/wp-content/uploads/2024/11/Godot4-print-関数での出力の例-1024x600.png)
push_error, push_warning 関数でエラー・警告メッセージとして出力すると、デバッガパネルにエラーと警告としてカウントされながら出力されます。
![Godot4 push_error, push_warning 関数での出力の例](https://compota-soft.work/wp1/wp-content/uploads/2024/11/Godot4-push_error-push_warning-関数での出力の例-1024x605.png)
エラー・警告メッセージにマウスオーバーすると、詳細な情報がポップアップ表示されます。
![Godot4 push_error, push_warning 関数での出力したメッセージをマウスオーバーすると情報がポップアップ表示されます.](https://compota-soft.work/wp1/wp-content/uploads/2024/11/Godot4-push_error-push_warning-関数での出力したメッセージをマウスオーバーすると情報がポップアップ表示されます-1024x258.png)
また、クリックするだけですぐにそのエラー・警告メッセージのファイル・行を表示してくれるので、探す手間が省けて便利です。
![Godot4 push_error, push_warning 関数での出力したメッセージをクリックするとそのファイルの行を表示してくれます..](https://compota-soft.work/wp1/wp-content/uploads/2024/11/Godot4-push_error-push_warning-関数での出力したメッセージをクリックするとそのファイルの行を表示してくれます-1024x595.png)
まとめ
今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、エラーや警告のメッセージをデバッガパネルなどに出力できる push_error 関数と push_warning 関数の使用例を、標準出力を行う print 関数と比較しながら、その表示結果の違いやメリットについて紹介しました。
参照サイト Thank You!
- Godot Engine – Free and open source 2D and 3D game engine
- Godot Debugging Techniques EVERY Dev Should Know – YouTube
- @GlobalScope — Godot Engine (4.x)の日本語のドキュメント method-print
- @GlobalScope — Godot Engine (4.x)の日本語のドキュメント #method-push-error
- @GlobalScope — Godot Engine (4.x)の日本語のドキュメント #method-push-warning
記事一覧 → Compota-Soft-Press
コメント