arrows are moving properly now
This commit is contained in:
@@ -78,15 +78,14 @@ margin = 0.0
|
||||
height = 1.77637
|
||||
radius = 0.1
|
||||
|
||||
[node name="Arrow" type="RigidBody3D"]
|
||||
collision_layer = 2
|
||||
collision_mask = 7
|
||||
continuous_cd = true
|
||||
contact_monitor = true
|
||||
[node name="Arrow" type="MeshInstance3D"]
|
||||
script = ExtResource("1_c7yig")
|
||||
|
||||
[node name="LandDepth" type="Marker3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1.31712)
|
||||
|
||||
[node name="Arrow" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, -0.592316)
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, -1.57945)
|
||||
mesh = SubResource("ArrayMesh_u78lm")
|
||||
skeleton = NodePath("")
|
||||
metadata/extras = {
|
||||
@@ -94,6 +93,11 @@ metadata/extras = {
|
||||
"poliigon_props": {}
|
||||
}
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, -4.88765e-09, 0.111816)
|
||||
[node name="ArrowCollider" type="Area3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, -4.88765e-09, -0.875317)
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="ArrowCollider"]
|
||||
shape = SubResource("CylinderShape3D_c7yig")
|
||||
|
||||
[node name="HitRay" type="RayCast3D" parent="."]
|
||||
target_position = Vector3(0, 0, -2)
|
||||
|
||||
@@ -89,7 +89,7 @@ _data = {
|
||||
radius = 2.5
|
||||
|
||||
[node name="Player" type="CharacterBody3D"]
|
||||
collision_layer = 4
|
||||
collision_layer = 20
|
||||
collision_mask = 5
|
||||
script = ExtResource("1_5wxv7")
|
||||
|
||||
|
||||
@@ -1 +1,13 @@
|
||||
extends Projectile
|
||||
|
||||
@onready var hit_ray: RayCast3D = $HitRay
|
||||
@onready var land_depth: Marker3D = $LandDepth
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
|
||||
if hit_ray.is_colliding():
|
||||
var stick_point = hit_ray.get_collision_point()
|
||||
if land_depth.global_position.distance_to(stick_point) > .2:
|
||||
global_position += global_transform.basis * Vector3(0,0,-speed) * delta
|
||||
else:
|
||||
global_position += global_transform.basis * Vector3(0,0,-speed) * delta
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
extends RigidBody3D
|
||||
extends Node3D
|
||||
class_name Projectile
|
||||
|
||||
var damage
|
||||
|
||||
@@ -17,8 +17,8 @@ func Physics_Update(delta):
|
||||
|
||||
func fire_projectile():
|
||||
var arrow_spawn = fired_object.instantiate()
|
||||
arrow_spawn.speed = object_speed
|
||||
get_tree().current_scene.add_child(arrow_spawn)
|
||||
arrow_spawn.speed = object_speed
|
||||
arrow_spawn.transform.basis = character.body.global_transform.basis
|
||||
arrow_spawn.global_position = character.body.global_position
|
||||
arrow_spawn.linear_velocity += character.body.global_transform.basis * Vector3(0,0,-object_speed)
|
||||
print("ARROW POS :", arrow_spawn.global_position)
|
||||
|
||||
Reference in New Issue
Block a user