アームがオブジェクトに接触したときの処理を作成。アームのArea3Dのシグナルを受けて、アームが自前のシグナルを発火。それをプレイヤーが受け取るようにした。
— toburau (@toburau) 2025年11月10日
070/100 #100日チャレンジ #GodotEngine #GodotEngine
アームが小惑星やデブリに接触したときの処理を追加。
アームのシーン内のArea3Dで接触判定を行い、body_entered シグナルで処理を行う。アームのArea3Dのシグナルから直接プレイヤーのスクリプトを呼び出せれば楽なのだが、アームはプレイヤー情報を持っていないので出来ず。
そこで、アームで自前のシグナルを発火させ、それをプレイヤー側で受け取るように実装した。
コードは次のような感じ。
arm.gd func _on_body_entered(body): emit_signal("touched", body) player.gd func _ready(): arm.touched.connect(_on_arm_touched) func _on_arm_touched(body): print("touched")