mouse_enter not triggered on 3d RigidBody

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By ingo_nikot
:warning: Old Version Published before Godot 3 was released.

The RigidBody is created via GDScript. It has a CollisionShape and a TestCube as childs.

The RigidBody is ray pickable
The CollisionShape has a BoxShape set as shape and the trigger is set true

I conntect the RigidBody to mouse_enter and mouse_exit

When i made the same via the IDE it was working but not via GDScript.

What did i miss?

here the Code:

var settlement_rigid = RigidBody.new()
var settlement_shape = CollisionShape.new()
var settlement_body = TestCube.new()
		
settlement_rigid.add_child(settlement_body)
settlement_rigid.add_child(settlement_shape)
		
settlement_body.set_material_override(mat_red)
		
settlement_rigid.set_name(settlement)

settlement_rigid.set_gravity_scale(0)
settlement_rigid.set_ray_pickable(true)
settlement_rigid.set_mode(RigidBody.MODE_RIGID)
		
var shape = BoxShape.new()
shape.set_extents(Vector3(1,1,1))
settlement_shape.set_shape(shape)
settlement_shape.set_trigger(true)

		
self.add_child(settlement_rigid)
settlement_rigid.connect("mouse_enter",self,"mouse_enter",[settlement])
settlement_rigid.connect("mouse_exit",self,"mouse_exit")
:bust_in_silhouette: Reply From: Zylann

It doesn’t work in game because CollisionShape is an editor-only helper, as explained in the documentation: http://docs.godotengine.org/en/latest/tutorials/2d/physics_introduction.html#collisionshape2d
It’s not very clear indeed, that has been encountered many times already by other people.

You have to use a different API, Shape and body.add_shape:
http://docs.godotengine.org/en/latest/classes/class_collisionobject.html?highlight=add_shape

thanks! I didnt notice that because i used 3D and not 2D. I didnt found any mention of editor-only helper in the 3D ColisionShape docs.

I hope now i can replace my ugly workaround :slight_smile:

ingo_nikot | 2016-12-21 21:28