projectile hit detection as Area3D
parent
28607044b1
commit
8a286a54d6
@ -0,0 +1,57 @@
|
||||
[gd_scene load_steps=7 format=4 uid="uid://b0m8q6col4box"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://0mf0tljb1w6b" path="res://resources/models/adventures/Textures/colormap.png" id="1_4u6j7"]
|
||||
[ext_resource type="Script" uid="uid://bfl8kwerqb2kv" path="res://scripts/target.gd" id="1_ikhwp"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_l8mi6"]
|
||||
resource_name = "colormap"
|
||||
cull_mode = 2
|
||||
albedo_texture = ExtResource("1_4u6j7")
|
||||
texture_filter = 2
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_0n375"]
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-0.050000004, -0.17, -0.17, 0.10000001, 0.34, 0.34),
|
||||
"format": 34896613377,
|
||||
"index_count": 252,
|
||||
"index_data": PackedByteArray("AAABAAIAAgABAAMAAwAEAAIAAgAFAAAABAADAAYABgADAAEABgAHAAQAAQAIAAYABwAGAAgAAQAAAAgACAAJAAcACQAIAAoAAAAKAAgACgALAAkADAALAAoACgANAAwADgAMAA0AAAAPAAoADwANAAoADQAPAA4ADwAAAAUABQAOAA8AEAARABIAEwARABAAEQATABQAFAASABEAEAAVABMAEgAUABYAFwAVABAAFgAYABIAGAAWABkAEgAaABAAGwAaABIAEgAYABsAGgAcABAAGAAdABsAGAAeAB0AEAAfABcAHAAfABAAIAAXAB8AHAAhAB8AHwAiACAAIQAiAB8AIQAjACIAJAAgACIAIwAlACIAIgAmACQAGQAkACYAJQAnACIAJwAmACIAJgAnABkAGQAnABgAJwAlAB4AGAAnAB4AKAApACoAKgArACgAKgAsACsALAAqAC0ALAAuACsALQAvACwALgAwACsALQAwAC8AMAAxACsALQAyADAAMAAyADEAMgAzADEANAA1ADYANgA3ADQANwA4ADQAOQA3ADYAOAA6ADQANgA7ADkAOAA8ADoAOwA9ADkAOwA+AD0AOwA/AD4APABAADoAPABBAEAAPwBCAEAAPwBDAD4AQQBDAEAAQwA/AEAARABFAEYARgBHAEQA"),
|
||||
"name": "colormap",
|
||||
"primitive": 3,
|
||||
"uv_scale": Vector4(0, 0, 0, 0),
|
||||
"vertex_count": 72,
|
||||
"vertex_data": PackedByteArray("/v8AAP9/AAD+/30lfSUAAP9/fSV9JQAA////fwAAAAD/f/9/AAAAAP9/AAD/fwAA//+B2n0lAAD/f4HafSUAAP//////fwAA/3////9/AAD+/4HagdoAAP9/gdqB2gAA/3//f///AAD+//9///8AAP9/fSWB2gAA/v99JYHaAAAAAH0lfSUAAAAA/38AAAAAAACB2n0lAAD/f/9/AAAAAP9/gdp9JQAA/399JX0lAAD/f////38AAP9/AAD/fwAAAAD///9/AAD/f4HagdoAAAAA/3+/KAAAAACxvU1CAAAAAE1CTUIAAAAAP9f/fwAAAACxvbG9AAAAAAAA/38AAP9/fSWB2gAAAAC/KP9/AAAAAH0lgdoAAAAATUKxvQAA/3//f///AAAAAP9/P9cAAAAA/3///wAAAACB2oHaAAAAAB1fHV8AAAAA/39/UQAAAADhoB1fAAAAAH9R/38AAAAA/3+dcQAAAAB/rv9/AAAAAJ1x/38AAAAAYY7/fwAAAAD/f2GOAAAAAB1f4aAAAAAA4aDhoAAAAAD/f3+uAAAAAE1CTUIAAAAA/3+/KAAAAACxvU1CAAAAAP9/f1EAAAAAHV8dXwAAAADhoB1fAAAAAL8o/38AAAAAP9f/fwAAAAB/Uf9/AAAAAH+u/38AAAAA4aDhoAAAAACxvbG9AAAAAE1Csb0AAAAAHV/hoAAAAAD/fz/XAAAAAP9/f64AAAAAnXH/fwAAAAD/f51xAAAAAGGO/38AAAAA/39hjgAA")
|
||||
}]
|
||||
blend_shape_mode = 0
|
||||
|
||||
[sub_resource type="ArrayMesh" id="ArrayMesh_2f4dd"]
|
||||
resource_name = "target-large_target-large"
|
||||
_surfaces = [{
|
||||
"aabb": AABB(-0.050000004, -0.17, -0.17, 0.10000001, 0.34, 0.34),
|
||||
"attribute_data": PackedByteArray("/zeY+f83GfL/Nxny/zeY+f83GfL/N5j5/zeY+f83GfL/N+XN/zf/3/83/9//N+XN/zf/3/83GfL/Nxny/zf/3/83GfL/Nxny/zf/3/83/9//N+XN/zflzf83Zcb/N2XG/zflzf835c3/N+XN/zflzf83Zcb/N2XG/zflzf83/9//Nxny/zdlxv83mPn/N+XN/zcZ8v83/9//lxmy/5f/n/+X5Y3/l/+f/5dWrP+XqJP/l5i5/5dlhv+XcrH/l4yO/5eok/+X5Y3/lxmy/5dWrP+X/5//l/+f/5cZsv+XGbL/l/+f/5f/n/+X5Y3/l+WN/5f/n/+XGbL/lxmy/5f/n/+X5Y3/l+WN/5dlhv+XZYb/l2WG/5dlhv+X5Y3/l+WN/5fljf+X/5//l/+f/5fljf+XGbL/l5i5/5eYuf+XGbL/l5i5/5cZsv+XGbL/l5i5/5eSpv+X/5//l2uZ/5dMqf+X/5//l7KW/5ffov+XHp3/l/+f/5eSpv+Xa5n/l/+f/5cZ8v+X/9//l+XN/5f/3/+XpOn/l1nW/5eY+f+XZcb/l6Pt/5da0v+XWdb/l+XN/5cZ8v+XpOn/l//f/5f/3/+XN+T/l//f/5fG2/+X/98="),
|
||||
"format": 34896613399,
|
||||
"index_count": 252,
|
||||
"index_data": PackedByteArray("AAABAAIAAgADAAAABAAFAAYABgAHAAQACAAJAAoACgALAAgADAANAA4ADgAPAAwAEAARABIAEgATABAAEwASABQAFAAVABMAFgAXABgAGAAZABYAGgAbABwAHAAdABoAHgAfACAAIAAhAB4AIAAiACEAIgAjACEAIgAkACMAJAAlACMAJgAnACgAKAApACYAKQAqACYAKwApACgAKgAsACYAKAAtACsAKgAuACwALQAvACsALQAwAC8ALQAxADAALgAyACwALgAzADIAMQA0ADIAMQA1ADAAMwA1ADIANQAxADIANgA3ADgAOAA5ADYAOQA4ADoAOgA7ADkAPAA9AD4APgA/ADwAQABBAEIAQgBDAEAARABFAEYARgBHAEQASABJAEoASgBLAEgATABNAE4ATgBPAEwAUABRAFIAUgBTAFAAVABVAFYAVgBXAFQAVgBYAFcAWABWAFkAWABaAFcAWQBbAFgAWgBcAFcAWQBcAFsAXABdAFcAWQBeAFwAXABeAF0AXgBfAF0AYABhAGIAYgBjAGAAYwBkAGAAZQBjAGIAZABmAGAAYgBnAGUAZABoAGYAZwBpAGUAZwBqAGkAZwBrAGoAaABsAGYAaABtAGwAawBuAGwAawBvAGoAbQBvAGwAbwBrAGwAcABxAHIAcgBzAHAA"),
|
||||
"material": SubResource("StandardMaterial3D_l8mi6"),
|
||||
"name": "colormap",
|
||||
"primitive": 3,
|
||||
"uv_scale": Vector4(0, 0, 0, 0),
|
||||
"vertex_count": 116,
|
||||
"vertex_data": PackedByteArray("/v8AAP9////+/30lfSX///9/fSV9Jf///38AAP9////+/30lgdr/n/7/AAD/f/+//38AAP9//7//f30lgdr/n/7/gdqB2v+f/v//f///AID/f/9///8AgP9/gdqB2v+f/v//f///AID+/30lgdr/n/9/fSWB2v+f/3//f///AID/f30lfSX///7/fSV9Jf//////fwAA////f/9/AAD/////gdp9Jf///3+B2n0l////f////3//v///////f/+//v+B2oHa/5//f4Hagdr/n/9/gdp9Jf////+B2n0l/////////3////9/////f/////+B2n0l/7////9/AAD/v/7/fSV9Jf+///////9//7/+/wAA/3//v/7/gdqB2v+//v99JYHa/7/+//9/////vwAAfSV9Jf+/AAD/fwAA/78AAIHafSX/vwAA/3+/KP+/AABNQk1C/78AALG9TUL/vwAAAAD/f/+/AAD///9//78AAL8o/3//vwAAP9f/f/+/AACxvbG9/78AAIHagdr/vwAAfSWB2v+/AABNQrG9/78AAP9/////vwAA/38/1/+/AAB9JX0l////f30lfSX///9//38AAP//AAD/fwAA////f4HafSX//wAAgdp9Jf///3//f///AID/f30lgdr/nwAAfSWB2v+fAAD/f///AIAAAIHafSX///9/gdp9Jf///3////9///8AAP///3///wAA////f/+//3////9//7//f4Hagdr/nwAAgdqB2v+f/3+B2oHa/5//f/9///8AgAAA/3///wCAAACB2oHa/5//f30lgdr/n/9/AAD/f/+/AAAAAP9//78AAH0lgdr/n/9/AAD/f////399JX0l//8AAH0lfSX//wAAAAD/f///AAAdXx1f/78AAP9/f1H/vwAA4aAdX/+/AAB/Uf9//78AAP9/nXH/vwAAf67/f/+/AACdcf9//78AAGGO/3//vwAA/39hjv+/AAAdX+Gg/78AAOGg4aD/vwAA/39/rv+/AABNQk1C/78AAP9/vyj/vwAAsb1NQv+/AAD/f39R/78AAB1fHV//vwAA4aAdX/+/AAC/KP9//78AAD/X/3//vwAAf1H/f/+/AAB/rv9//78AAOGg4aD/vwAAsb2xvf+/AABNQrG9/78AAB1f4aD/vwAA/38/1/+/AAD/f3+u/78AAJ1x/3//vwAA/3+dcf+/AABhjv9//78AAP9/YY7/v/9//z98pf//fKX///9//z8AAP9/AAD/fwAA/38AAP9/////f/9/////f///////f/9///8AAP9/AAD/f/9///98pf//fKX///9/////f////3+B2v9/gdr///9/////f////3////9//3+B2v9/gdr/f/+//3//v/9/AAD/fwAA/38AAP9/AAD/fwAA/38AAP9/AAD/fwAA/3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3///3yl//98pf///3////9/////f4Ha/3+B2v9///8AAP9/AAD/f/9/////f4Ha/3+B2v9//7//f/+/////f////3////9/////f////3//f////3///////38AAP9/AAD/fwAA/38AAP9//3//P3yl//98pf///3//P/9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f////3////9/////f///")
|
||||
}]
|
||||
blend_shape_mode = 0
|
||||
shadow_mesh = SubResource("ArrayMesh_0n375")
|
||||
|
||||
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_d8tpd"]
|
||||
points = PackedVector3Array(0.049990214, 0, 0.17, 0.050000004, 0.17, 0, 0.049990214, 0.12017815, 0.12017815, -0.050000004, 0, 0.17, 0.049990214, -0.12021144, 0.12017815, -0.050000004, 0.17, 0, 0.050000004, 0, -0.17, 0.050000004, 0.12017815, -0.12021144, -0.050000004, 0.12017815, 0.12017815, -0.050000004, -0.12021144, 0.12017815, 0.049990214, -0.17, 0, -0.050000004, 0.12017815, -0.12021144, 0.049990214, -0.12021144, -0.12021144, -0.050000004, 0, -0.17, -0.050000004, -0.17, 0, -0.050000004, -0.12021144, -0.12021144)
|
||||
|
||||
[node name="Target" type="Area3D"]
|
||||
script = ExtResource("1_ikhwp")
|
||||
|
||||
[node name="target-large" type="MeshInstance3D" parent="."]
|
||||
mesh = SubResource("ArrayMesh_2f4dd")
|
||||
skeleton = NodePath("")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("ConvexPolygonShape3D_d8tpd")
|
||||
|
||||
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 8.5 KiB |
@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://0mf0tljb1w6b"
|
||||
path.s3tc="res://.godot/imported/colormap.png-d65d0d3f3589c232417b542d59e57791.s3tc.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/models/adventures/Textures/colormap.png"
|
||||
dest_files=["res://.godot/imported/colormap.png-d65d0d3f3589c232417b542d59e57791.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
Binary file not shown.
@ -0,0 +1,49 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://c0itp1qbolycx"
|
||||
path="res://.godot/imported/target-large.glb-be9fdfbe3e1fec5ec23d21b8886a2370.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://resources/models/adventures/target-large.glb"
|
||||
dest_files=["res://.godot/imported/target-large.glb-be9fdfbe3e1fec5ec23d21b8886a2370.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/root_script=null
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_name_suffixes=true
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
materials/extract=0
|
||||
materials/extract_format=0
|
||||
materials/extract_path=""
|
||||
_subresources={
|
||||
"nodes": {
|
||||
"PATH:target-large": {
|
||||
"generate/physics": true,
|
||||
"physics/shape_type": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
gltf/naming_version=2
|
||||
gltf/embedded_image_handling=1
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -1,9 +1,17 @@
|
||||
extends Node3D
|
||||
extends Area3D
|
||||
|
||||
var speed: float
|
||||
var speed: float = 0.0
|
||||
|
||||
func _physics_process(delta):
|
||||
translate(Vector3.FORWARD * speed * delta)
|
||||
translate(-transform.basis.x * speed * delta)
|
||||
#translate(Vector3.FORWARD * speed * delta)
|
||||
|
||||
func shoot() -> void:
|
||||
speed = 5
|
||||
speed = 30
|
||||
#var timer = get_tree().create_timer(3.0) # 3 seconds lifetime
|
||||
#timer.timeout.connect(queue_free)
|
||||
|
||||
func _on_body_entered(body: Node) -> void:
|
||||
print("Projectile hits " + body.name + "...")
|
||||
#TODO: Add damage to hit body
|
||||
queue_free()
|
||||
|
||||
@ -0,0 +1,4 @@
|
||||
extends Area3D
|
||||
|
||||
func _on_body_entered(body: Node3D) -> void:
|
||||
print(body.name + " hits the target...")
|
||||
@ -0,0 +1 @@
|
||||
uid://bfl8kwerqb2kv
|
||||
Loading…
Reference in New Issue