RigidBody2D에서 총알(Bullet)을 발사하여 벽(Block)에 충돌하였을 경우, 충돌한 객체의 정보를 얻어내기 위해서는 func _ready() 안에 다음 code를 추가한다.

func _ready():
    set_contact_monitor(true)
    set_max_contacts_reported(5) # 0보다 큰 정수를 지정해주면 된다.

그다음 편집기에서 signals에서 함수를 연결하면 되지만, 직접 Gdscript에서 code를 추가하여보자. 그렇기 위해선 _ready() 함수 루틴에 다음과 같이 signal을 연결하는 code를 추가한다.

func _ready():
    set_contact_monitor(true)
    set_max_contacts_reported(5)
    connect("body_entered", self, "collision_detected")

그리고 collision_detected() 함수를 작성한다.

func collision_detected(obj):
    print(self.get_name(), " is colliding with ", obj.get_name())

더 자세한 정보를 얻고 싶을때는 get_colliding_bodies()를 이용하면 된다.

 

<참고>
 https://www.reddit.com/r/godot/comments/3ofhwj/how_can_i_use_body_enter_function/

+ Recent posts