more tweaks, not perfect but way better than before
This commit is contained in:
@@ -851,7 +851,6 @@ collision_layer = 8
|
|||||||
collision_mask = 521
|
collision_mask = 521
|
||||||
up_direction = Vector3(0.0449994, 0.998987, 0)
|
up_direction = Vector3(0.0449994, 0.998987, 0)
|
||||||
script = ExtResource("1_7e7fe")
|
script = ExtResource("1_7e7fe")
|
||||||
debug_tools = true
|
|
||||||
nav_agent = NodePath("NavigationAgent3D")
|
nav_agent = NodePath("NavigationAgent3D")
|
||||||
hit_targets = [NodePath("body/backTarget")]
|
hit_targets = [NodePath("body/backTarget")]
|
||||||
visibility_areas = [NodePath("VisibilityArea")]
|
visibility_areas = [NodePath("VisibilityArea")]
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ config_version=5
|
|||||||
|
|
||||||
config/name="First Person Test"
|
config/name="First Person Test"
|
||||||
config/tags=PackedStringArray("fps")
|
config/tags=PackedStringArray("fps")
|
||||||
run/main_scene="uid://cfaydhd6u5bmb"
|
run/main_scene="uid://f7e0v1r6ra6c"
|
||||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||||
config/icon="uid://6svuq1l83al5"
|
config/icon="uid://6svuq1l83al5"
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ func Physics_Update(delta):
|
|||||||
move_to_nav_point(delta)
|
move_to_nav_point(delta)
|
||||||
|
|
||||||
#do turret scan
|
#do turret scan
|
||||||
turret_scan_look(enemy.nav_agent.get_next_path_position(),scan_direction,delta)
|
turret_scan(Vector3(0,scan_direction,0),delta)
|
||||||
|
|
||||||
func get_new_wander_point():
|
func get_new_wander_point():
|
||||||
var x = randf_range(-wander_distance_max,wander_distance_max)
|
var x = randf_range(-wander_distance_max,wander_distance_max)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ func Physics_Update(delta):
|
|||||||
move_to_nav_point(delta)
|
move_to_nav_point(delta)
|
||||||
|
|
||||||
#do turret scan
|
#do turret scan
|
||||||
turret_look3D(delta)
|
turret_scan(Vector3(0,scan_direction,0),delta)
|
||||||
|
|
||||||
func get_new_point_of_interest():
|
func get_new_point_of_interest():
|
||||||
if enemy.player_last_seen != null and enemy.player_last_seen != move_target:
|
if enemy.player_last_seen != null and enemy.player_last_seen != move_target:
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ func rotate_to_face2D(object,target,target_offset_angle,delta,turn_speed):
|
|||||||
var direction = (pos2d - target_pos2d)
|
var direction = (pos2d - target_pos2d)
|
||||||
return lerp_angle(object.global_rotation.y,atan2(direction.x,direction.y) + deg_to_rad(target_offset_angle),delta * turn_speed)
|
return lerp_angle(object.global_rotation.y,atan2(direction.x,direction.y) + deg_to_rad(target_offset_angle),delta * turn_speed)
|
||||||
|
|
||||||
func rotate_to_face3D(object,target,delta,turn_speed):
|
func rotate_to_face3D(object : Node3D,target,target_offset_angle : Vector3,delta : float,turn_speed : float):
|
||||||
if target == null:
|
if target == null:
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -80,9 +80,9 @@ func rotate_to_face3D(object,target,delta,turn_speed):
|
|||||||
var current_rotation = object.global_rotation
|
var current_rotation = object.global_rotation
|
||||||
|
|
||||||
#Interpolate each axis
|
#Interpolate each axis
|
||||||
current_rotation.x = lerp_angle(current_rotation.x,desired_rotation.x,delta * turn_speed)
|
current_rotation.x = lerp_angle(current_rotation.x,desired_rotation.x + target_offset_angle.x,delta * turn_speed)
|
||||||
current_rotation.y = lerp_angle(current_rotation.y,desired_rotation.y,delta * turn_speed)
|
current_rotation.y = lerp_angle(current_rotation.y,desired_rotation.y + target_offset_angle.y,delta * turn_speed)
|
||||||
current_rotation.z = lerp_angle(current_rotation.z,desired_rotation.z,delta * turn_speed)
|
current_rotation.z = lerp_angle(current_rotation.z,desired_rotation.z + target_offset_angle.z,delta * turn_speed)
|
||||||
|
|
||||||
#clamp pitch
|
#clamp pitch
|
||||||
var max_downward_pitch = deg_to_rad(85)
|
var max_downward_pitch = deg_to_rad(85)
|
||||||
@@ -106,8 +106,11 @@ func velocity_computed(safe_velocity):
|
|||||||
func turret_look2D(delta):
|
func turret_look2D(delta):
|
||||||
enemy.turret_look.global_rotation.y = rotate_to_face2D(enemy.turret_look,look_target,0,delta,turret_speed)
|
enemy.turret_look.global_rotation.y = rotate_to_face2D(enemy.turret_look,look_target,0,delta,turret_speed)
|
||||||
|
|
||||||
|
func turret_scan(target_offset : Vector3,delta):
|
||||||
|
rotate_to_face3D(enemy.turret_look,look_target,target_offset,delta,turret_speed)
|
||||||
|
|
||||||
func turret_look3D(delta):
|
func turret_look3D(delta):
|
||||||
rotate_to_face3D(enemy.turret_look,look_target,delta,turret_speed)
|
rotate_to_face3D(enemy.turret_look,look_target,Vector3.ZERO,delta,turret_speed)
|
||||||
|
|
||||||
func turret_scan_look(target,scan_direction,delta):
|
func turret_scan_look(target,scan_direction,delta):
|
||||||
enemy.turret_look.global_rotation.y = rotate_to_face2D(enemy.turret_look,target,scan_direction,delta,turret_speed)
|
enemy.turret_look.global_rotation.y = rotate_to_face2D(enemy.turret_look,target,scan_direction,delta,turret_speed)
|
||||||
|
|||||||
Reference in New Issue
Block a user