0 votes

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 mouseenter and mouseexit

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")
in Engine by (289 points)

1 Answer

+1 vote
Best answer

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

by (27,170 points)
selected by

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 :)

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.

Categories