The PathNavigatorForKinematicBody node can take a KinematicBody as a child and move it along its path. It doesn't strictly follow the path though, but also avoids obstacles according to the Navigation (with its Navmesh). How the Navigation node is fetched will be changed using Groups later, the current structure is temporary. A PathTestWorld has been added for testing this behavior, as well as a basic Meldewesen.
44 lines
3.1 KiB
Plaintext
44 lines
3.1 KiB
Plaintext
[gd_scene load_steps=6 format=2]
|
|
|
|
[ext_resource path="res://Characters/Util/PathNavigatorForKinematicBody.tscn" type="PackedScene" id=1]
|
|
[ext_resource path="res://Characters/Meldewesen/Meldewesen.tscn" type="PackedScene" id=2]
|
|
|
|
[sub_resource type="NavigationMesh" id=1]
|
|
vertices = PoolVector3Array( -1.3, 0.4, -1.6, 0.200001, 0.4, -1.6, 0.200001, 0.4, -9.4, -9.4, 0.4, -0.0999994, -1.6, 0.4, -0.0999994, -1.3, 0.4, -1.6, 0.200001, 0.4, -9.4, -9.4, 0.4, -9.4, 0.200001, 0.4, -9.4, 0.200001, 0.4, -1.6, 1.4, 0.4, -1.6, 1.4, 0.4, -1.6, 1.7, 0.4, -0.0999994, 9.5, 0.4, -0.0999994, 9.5, 0.4, -9.4, 0.200001, 0.4, -9.4, 0.200001, 0.4, 9.5, 0.200001, 0.4, 8.3, -1.6, 0.4, 8, -9.4, 0.4, 9.5, -1.6, 0.4, 5, 0.200001, 0.4, 4.7, 0.200001, 0.4, 1.7, -1.6, 0.4, 1.4, -1.6, 0.4, 5, -1.6, 0.4, 1.4, -9.4, 0.4, -0.0999994, -9.4, 0.4, 9.5, -1.6, 0.4, 1.4, -1.6, 0.4, -0.0999994, -9.4, 0.4, -0.0999994, -9.4, 0.4, 9.5, -1.6, 0.4, 8, -1.6, 0.4, 5, 1.7, 0.4, 8, 0.200001, 0.4, 8.3, 0.200001, 0.4, 9.5, 9.5, 0.4, 9.5, 0.200001, 0.4, 1.7, 0.200001, 0.4, 4.7, 1.7, 0.4, 5, 1.7, 0.4, 1.4, 1.7, 0.4, 5, 9.5, 0.4, 9.5, 9.5, 0.4, -0.0999994, 1.7, 0.4, 1.4, 1.7, 0.4, 5, 1.7, 0.4, 8, 9.5, 0.4, 9.5, 9.5, 0.4, -0.0999994, 1.7, 0.4, -0.0999994, 1.7, 0.4, 1.4 )
|
|
polygons = [ PoolIntArray( 2, 0, 1 ), PoolIntArray( 7, 3, 6 ), PoolIntArray( 3, 5, 6 ), PoolIntArray( 3, 4, 5 ), PoolIntArray( 10, 8, 9 ), PoolIntArray( 15, 11, 14 ), PoolIntArray( 11, 12, 14 ), PoolIntArray( 12, 13, 14 ), PoolIntArray( 19, 16, 18 ), PoolIntArray( 16, 17, 18 ), PoolIntArray( 23, 20, 22 ), PoolIntArray( 20, 21, 22 ), PoolIntArray( 27, 24, 26 ), PoolIntArray( 24, 25, 26 ), PoolIntArray( 30, 28, 29 ), PoolIntArray( 33, 31, 32 ), PoolIntArray( 37, 34, 36 ), PoolIntArray( 34, 35, 36 ), PoolIntArray( 41, 38, 40 ), PoolIntArray( 38, 39, 40 ), PoolIntArray( 45, 42, 44 ), PoolIntArray( 42, 43, 44 ), PoolIntArray( 48, 46, 47 ), PoolIntArray( 51, 49, 50 ) ]
|
|
|
|
[sub_resource type="CubeMesh" id=2]
|
|
|
|
[sub_resource type="PlaneMesh" id=3]
|
|
size = Vector2( 20, 20 )
|
|
|
|
[node name="Navigation" type="Navigation"]
|
|
|
|
[node name="Camera" type="Camera" parent="."]
|
|
transform = Transform( 1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 0, 10, 16 )
|
|
current = true
|
|
|
|
[node name="DirectionalLight" type="DirectionalLight" parent="."]
|
|
transform = Transform( 0.766044, -0.582564, 0.271654, 0, 0.422618, 0.906308, -0.642788, -0.694272, 0.323744, 0, 5, 0 )
|
|
|
|
[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."]
|
|
navmesh = SubResource( 1 )
|
|
|
|
[node name="MeshInstance" type="MeshInstance" parent="NavigationMeshInstance"]
|
|
mesh = SubResource( 2 )
|
|
material/0 = null
|
|
|
|
[node name="MeshInstance3" type="MeshInstance" parent="NavigationMeshInstance"]
|
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 6.53892 )
|
|
mesh = SubResource( 2 )
|
|
material/0 = null
|
|
|
|
[node name="MeshInstance2" type="MeshInstance" parent="NavigationMeshInstance"]
|
|
mesh = SubResource( 3 )
|
|
material/0 = null
|
|
|
|
[node name="PathNavigatorForKinematicBody" parent="." instance=ExtResource( 1 )]
|
|
body_nodepath = NodePath("Meldewesen")
|
|
|
|
[node name="Meldewesen" parent="PathNavigatorForKinematicBody" instance=ExtResource( 2 )]
|