diff options
Diffstat (limited to 'demos/3d/kinematic_char/follow_camera.gd')
-rw-r--r-- | demos/3d/kinematic_char/follow_camera.gd | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/demos/3d/kinematic_char/follow_camera.gd b/demos/3d/kinematic_char/follow_camera.gd index 60eef5787a..cf7172d7bb 100644 --- a/demos/3d/kinematic_char/follow_camera.gd +++ b/demos/3d/kinematic_char/follow_camera.gd @@ -24,7 +24,7 @@ func _fixed_process(dt): #regular delta follow #check ranges - + if (delta.length() < min_distance): delta = delta.normalized() * min_distance elif (delta.length() > max_distance): @@ -36,29 +36,6 @@ func _fixed_process(dt): if ( delta.y < min_height): delta.y = min_height - #check autoturn - - var ds = PhysicsServer.space_get_direct_state( get_world().get_space() ) - - - var col_left = ds.intersect_ray(target,target+Matrix3(up,deg2rad(autoturn_ray_aperture)).xform(delta),collision_exception) - var col = ds.intersect_ray(target,target,collision_exception) - var col_right = ds.intersect_ray(target,target+Matrix3(up,deg2rad(-autoturn_ray_aperture)).xform(delta),collision_exception) - - if (!col.empty()): - #if main ray was occluded, get camera closer, this is the worst case scenario - delta = col.position - target - elif (!col_left.empty() and col_right.empty()): - #if only left ray is occluded, turn the camera around to the right - delta = Matrix3(up,deg2rad(-dt*autoturn_speed)).xform(delta) - elif (col_left.empty() and !col_right.empty()): - #if only right ray is occluded, turn the camera around to the left - delta = Matrix3(up,deg2rad(dt*autoturn_speed)).xform(delta) - else: - #do nothing otherwise, left and right are occluded but center is not, so do not autoturn - pass - - #apply lookat pos = target + delta look_at_from_pos(pos,target,up) |