0 votes

So I've been using the exact 2D code from here: http://docs.godotengine.org/en/stable/tutorials/ray-casting.html on a KinematicBody to cast a ray:

func _fixed_process(delta):
self.look_at(global.PLAYER_POS);
var space_state = get_world().get_direct_space_state();
var result = space_state.intersect_ray(get_global_pos(), global.PLAYER_POS, [ self ] );

But it returns:

 Nonexistent function 'get_space' in base 'KinematicBody2D

Any idea what might be causing this behaviour?

Thanks!
Avery

in Engine by (45 points)

1 Answer

+1 vote
Best answer

You want to use get_world_2D() for things that are 2D. The one being used in that example is for 3D.

by (5,278 points)
selected by

Thanks! This worked. Just a side note for anyone who stumbles on this, get_world_2D() will fail, but get_world_2d() works perfectly.

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 Frequently asked questions and 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 [email protected] with your username.