diff --git a/autoload/global/global.gd b/autoload/global/global.gd index 4648b6c..a45cbe5 100644 --- a/autoload/global/global.gd +++ b/autoload/global/global.gd @@ -78,3 +78,9 @@ func add_unit_id_save_map(unit_data:Dictionary): #获取地图中的存储角色数据 func get_map_data(map_id:String): return map_dictionary[map_id] + + + +var now_player_data:Dictionary={ + +} diff --git a/project.godot b/project.godot index 2981d1b..50076d2 100644 --- a/project.godot +++ b/project.godot @@ -44,6 +44,11 @@ mouse_right={ "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":2,"position":Vector2(150, 28),"global_position":Vector2(159, 74),"factor":1.0,"button_index":2,"canceled":false,"pressed":true,"double_click":false,"script":null) ] } +e={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) +] +} [rendering] diff --git a/scene/character/dead_scene_sprite/dead_scene.gd b/scene/character/dead_scene_sprite/dead_scene.gd index 235dd14..d28da35 100644 --- a/scene/character/dead_scene_sprite/dead_scene.gd +++ b/scene/character/dead_scene_sprite/dead_scene.gd @@ -4,17 +4,10 @@ extends AnimatedSprite2D # Called when the node enters the scene tree for the first time. func _ready() -> void: + play("dead") pass # Replace with function body. func _on_animation_finished() -> void: - animation_player.play("modulutehide") - queue_free() - pass # Replace with function body. - - -func _on_animation_player_animation_finished(anim_name: StringName) -> void: - print("dada") - queue_free() - pass # Replace with function body. + animation_player.play("free") diff --git a/scene/character/dead_scene_sprite/dead_scene.tscn b/scene/character/dead_scene_sprite/dead_scene.tscn index f3b692c..ad60e9d 100644 --- a/scene/character/dead_scene_sprite/dead_scene.tscn +++ b/scene/character/dead_scene_sprite/dead_scene.tscn @@ -18,7 +18,7 @@ tracks/0/keys = { } [sub_resource type="Animation" id="Animation_w6wlf"] -resource_name = "modulutehide" +resource_name = "free" length = 0.5 tracks/0/type = "value" tracks/0/imported = false @@ -32,11 +32,25 @@ tracks/0/keys = { "update": 0, "values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] } +tracks/1/type = "method" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.5), +"transitions": PackedFloat32Array(1), +"values": [{ +"args": [], +"method": &"queue_free" +}] +} [sub_resource type="AnimationLibrary" id="AnimationLibrary_a2cak"] _data = { "RESET": SubResource("Animation_mdkhy"), -"modulutehide": SubResource("Animation_w6wlf") +"free": SubResource("Animation_w6wlf") } [node name="DeadScene" type="AnimatedSprite2D"] @@ -48,4 +62,3 @@ libraries = { } [connection signal="animation_finished" from="." to="." method="_on_animation_finished"] -[connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"] diff --git a/scene/class/born_mark.gd b/scene/class/born_mark.gd new file mode 100644 index 0000000..a23e4d9 --- /dev/null +++ b/scene/class/born_mark.gd @@ -0,0 +1,3 @@ +extends Marker2D + +class_name BornMark diff --git a/scene/class/door.gd b/scene/class/door.gd index 61510e1..bc166fe 100644 --- a/scene/class/door.gd +++ b/scene/class/door.gd @@ -1 +1,7 @@ -extends Node +extends Area2D + + +class_name Door +@export var map_id:String + +@export var map_born_pos:int=0 diff --git a/scene/class/map.gd b/scene/class/map.gd index 2d9b7f3..50b4e72 100644 --- a/scene/class/map.gd +++ b/scene/class/map.gd @@ -1,7 +1,7 @@ extends Node2D class_name map @export var map_id:String="" - +@export var map_born_mark:Array[BornMark] var pre_character_data:Array=[] func _ready() -> void: Global.now_map_id=map_id @@ -15,3 +15,14 @@ func _ready() -> void: } pre_character_data.append(new_dic) i.queue_free() +#获取第ind个门的位置 +func get_mark_postion(ind:int): + + + if ind=0: + var mark=map_born_mark[ind] + if mark is Node2D: + return mark.global_position + + pass + pass diff --git a/scene/map/map_test_0.tscn b/scene/map/map_test_0.tscn index d7a3dbe..d4f1dd6 100644 --- a/scene/map/map_test_0.tscn +++ b/scene/map/map_test_0.tscn @@ -1,8 +1,11 @@ -[gd_scene load_steps=7 format=4 uid="uid://bt05onvfl6ael"] +[gd_scene load_steps=11 format=4 uid="uid://bt05onvfl6ael"] [ext_resource type="Script" path="res://scene/map/map_test_0.gd" id="1_mkv6t"] [ext_resource type="Texture2D" uid="uid://dxtu12mw7fsq8" path="res://res/image/test/tile.png" id="2_k3cp7"] [ext_resource type="PackedScene" uid="uid://b6jyxox72yxjc" path="res://scene/mark/character_marker_2d.tscn" id="3_v1al5"] +[ext_resource type="Script" path="res://scene/class/door.gd" id="4_61dsd"] +[ext_resource type="Texture2D" uid="uid://csk8u15wepd1w" path="res://icon.svg" id="5_b01gw"] +[ext_resource type="Script" path="res://scene/class/born_mark.gd" id="6_qu6gr"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_tjudi"] vertices = PackedVector2Array(32, 32, -32, 32, -32, -32, 32, -32) @@ -24,8 +27,12 @@ physics_layer_0/collision_layer = 1 navigation_layer_0/layers = 1 sources/0 = SubResource("TileSetAtlasSource_j4j8n") -[node name="map_test_0" type="Node2D"] +[sub_resource type="CircleShape2D" id="CircleShape2D_1hdps"] +radius = 76.99 + +[node name="map_test_0" type="Node2D" node_paths=PackedStringArray("map_born_mark")] script = ExtResource("1_mkv6t") +map_born_mark = [NodePath("BornMark")] [node name="navigation" type="TileMapLayer" parent="."] unique_name_in_owner = true @@ -49,3 +56,18 @@ unit_data_from_id = "test_character_base" position = Vector2(359, -417) unit_id = "test3" unit_data_from_id = "test_character_base" + +[node name="Door" type="Area2D" parent="."] +position = Vector2(1079, 609) +script = ExtResource("4_61dsd") +map_id = "map_1" + +[node name="Sprite2D" type="Sprite2D" parent="Door"] +texture = ExtResource("5_b01gw") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Door"] +shape = SubResource("CircleShape2D_1hdps") + +[node name="BornMark" type="Marker2D" parent="."] +position = Vector2(-1043, -488) +script = ExtResource("6_qu6gr") diff --git a/scene/map/map_test_1.tscn b/scene/map/map_test_1.tscn index 85f9c21..19e2230 100644 --- a/scene/map/map_test_1.tscn +++ b/scene/map/map_test_1.tscn @@ -1,8 +1,11 @@ -[gd_scene load_steps=7 format=4 uid="uid://cgbmwgp5kxn43"] +[gd_scene load_steps=11 format=4 uid="uid://cgbmwgp5kxn43"] [ext_resource type="Script" path="res://scene/map/map_test_0.gd" id="1_476af"] [ext_resource type="Texture2D" uid="uid://dxtu12mw7fsq8" path="res://res/image/test/tile.png" id="2_3qa44"] [ext_resource type="PackedScene" uid="uid://b6jyxox72yxjc" path="res://scene/mark/character_marker_2d.tscn" id="3_yk4q8"] +[ext_resource type="Script" path="res://scene/class/door.gd" id="4_fof6u"] +[ext_resource type="Texture2D" uid="uid://csk8u15wepd1w" path="res://icon.svg" id="5_cp4uj"] +[ext_resource type="Script" path="res://scene/class/born_mark.gd" id="6_jfam2"] [sub_resource type="NavigationPolygon" id="NavigationPolygon_tjudi"] vertices = PackedVector2Array(32, 32, -32, 32, -32, -32, 32, -32) @@ -24,8 +27,12 @@ physics_layer_0/collision_layer = 1 navigation_layer_0/layers = 1 sources/0 = SubResource("TileSetAtlasSource_j4j8n") -[node name="map_test_1" type="Node2D"] +[sub_resource type="CircleShape2D" id="CircleShape2D_jekr0"] +radius = 76.99 + +[node name="map_test_1" type="Node2D" node_paths=PackedStringArray("map_born_mark")] script = ExtResource("1_476af") +map_born_mark = [NodePath("BornMark")] [node name="navigation" type="TileMapLayer" parent="."] unique_name_in_owner = true @@ -44,3 +51,18 @@ unit_data_from_id = "test_character_base" position = Vector2(842, 32) unit_id = "test2" unit_data_from_id = "test_character_base" + +[node name="Door" type="Area2D" parent="."] +position = Vector2(1079, 609) +script = ExtResource("4_fof6u") +map_id = "map_0" + +[node name="Sprite2D" type="Sprite2D" parent="Door"] +texture = ExtResource("5_cp4uj") + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Door"] +shape = SubResource("CircleShape2D_jekr0") + +[node name="BornMark" type="Marker2D" parent="."] +position = Vector2(-1043, -488) +script = ExtResource("6_jfam2") diff --git a/scene/mark/character_marker_2d.tscn b/scene/mark/character_marker_2d.tscn index 70fc315..1cd786f 100644 --- a/scene/mark/character_marker_2d.tscn +++ b/scene/mark/character_marker_2d.tscn @@ -11,6 +11,7 @@ outline_color = Color(0, 0, 0, 1) script = ExtResource("1_6325c") unit_id = "测试2" unit_type = "default" +metadata/_edit_horizontal_guides_ = [-141.0] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] position = Vector2(-2, -88) diff --git a/scene/test/character.tscn b/scene/test/character.tscn index 5c43150..a5b957d 100644 --- a/scene/test/character.tscn +++ b/scene/test/character.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=3 uid="uid://cf2g2urxaukxb"] +[gd_scene load_steps=18 format=3 uid="uid://cf2g2urxaukxb"] [ext_resource type="Script" path="res://scene/test/self_character.gd" id="1_d0trv"] [ext_resource type="Script" path="res://scene/test/state_machine.gd" id="2_v5m4x"] @@ -61,11 +61,22 @@ colors = PackedColorArray(0, 1, 0, 1, 0, 1, 0, 1) [sub_resource type="GradientTexture1D" id="GradientTexture1D_jp0r7"] gradient = SubResource("Gradient_vdy2i") -[node name="CharacterBody2D" type="CharacterBody2D" node_paths=PackedStringArray("agent", "state_machine", "rotate", "attack_area")] +[sub_resource type="LabelSettings" id="LabelSettings_50aib"] +outline_size = 5 +outline_color = Color(0, 0, 0, 1) + +[sub_resource type="CircleShape2D" id="CircleShape2D_rhh7a"] +radius = 104.12 + +[node name="CharacterBody2D" type="CharacterBody2D" node_paths=PackedStringArray("agent", "state_machine", "rotate", "touch_area", "attack_area")] script = ExtResource("1_d0trv") +unit_id = "player" +unit_type = "player" +unit_data_from_id = "test_character_base" agent = NodePath("agent") state_machine = NodePath("state_machine") rotate = NodePath("rotate") +touch_area = NodePath("touch_area") attack_area = NodePath("rotate/attack_area") [node name="agent" type="NavigationAgent2D" parent="."] @@ -137,4 +148,22 @@ nine_patch_stretch = true texture_under = SubResource("GradientTexture1D_akajp") texture_progress = SubResource("GradientTexture1D_jp0r7") +[node name="door" type="Label" parent="."] +unique_name_in_owner = true +visible = false +offset_left = -13.0 +offset_top = -133.0 +offset_right = 27.0 +offset_bottom = -110.0 +text = "按e传送" +label_settings = SubResource("LabelSettings_50aib") + +[node name="touch_area" type="Area2D" parent="."] +unique_name_in_owner = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="touch_area"] +shape = SubResource("CircleShape2D_rhh7a") + [connection signal="state_value_changed" from="." to="." method="_on_state_value_changed"] +[connection signal="area_entered" from="touch_area" to="." method="_on_touch_area_area_entered"] +[connection signal="area_exited" from="touch_area" to="." method="_on_touch_area_area_exited"] diff --git a/scene/test/other_character.tscn b/scene/test/other_character.tscn index e0680c7..3aba6a6 100644 --- a/scene/test/other_character.tscn +++ b/scene/test/other_character.tscn @@ -138,7 +138,7 @@ texture_under = SubResource("GradientTexture1D_ioncu") texture_progress = SubResource("GradientTexture1D_6t72h") [node name="BeehaveTree" parent="." node_paths=PackedStringArray("blackboard", "actor") instance=ExtResource("3_5u10o")] -blackboard = NodePath("@Node@223301") +blackboard = NodePath("@Node@17289") actor = NodePath("..") [connection signal="state_value_changed" from="." to="." method="_on_state_value_changed"] diff --git a/scene/test/self_character.gd b/scene/test/self_character.gd index 41ac956..10e9144 100644 --- a/scene/test/self_character.gd +++ b/scene/test/self_character.gd @@ -1,5 +1,5 @@ extends Unit - +class_name SelfUnit func _ready() -> void: unit_data=Database.get_unit_data(unit_data_from_id,unit_id) super._ready() @@ -13,3 +13,26 @@ func _on_state_value_changed(state_value_name: String, value: Variant) -> void: "hp_max": %hp.max_value=value pass # Replace with function body. + + + +var door_area:Door +func _on_touch_area_area_entered(area: Area2D) -> void: + if area is Door: + door_area=area + %door.show() + pass # Replace with function body. + + +func _on_touch_area_area_exited(area: Area2D) -> void: + if area is Door: + door_area=null + %door.hide() + pass # Replace with function body. + +func is_door_availible(): + return door_area!=null +func get_door(): + + return door_area + diff --git a/scene/test/tes9069.tmp b/scene/test/tes9069.tmp new file mode 100644 index 0000000..37caf8f --- /dev/null +++ b/scene/test/tes9069.tmp @@ -0,0 +1,80 @@ +[gd_scene load_steps=4 format=3 uid="uid://1wl1fl3qtxc"] + +[ext_resource type="Script" path="res://scene/test/test_main.gd" id="1_aimp4"] +[ext_resource type="PackedScene" uid="uid://cf2g2urxaukxb" path="res://scene/test/character.tscn" id="2_nvm7o"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_shajf"] +radius = 38.71 + +[node name="main" type="Node2D" node_paths=PackedStringArray("player")] +script = ExtResource("1_aimp4") +player = NodePath("CB_add_pos/CharacterBody2D") + +[node name="map" type="Node2D" parent="."] + +[node name="CanvasLayer" type="CanvasLayer" parent="."] +layer = 2 + +[node name="Control" type="Control" parent="CanvasLayer"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/Control"] +layout_mode = 0 +offset_right = 272.0 +offset_bottom = 66.0 + +[node name="type" type="MenuButton" parent="CanvasLayer/Control/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +flat = false +item_count = 2 +popup/item_0/text = "test_character_base" +popup/item_1/text = "test_character_ranged" +popup/item_1/id = 1 + +[node name="put_check" type="CheckBox" parent="CanvasLayer/Control/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "投放" + +[node name="LineEdit" type="LineEdit" parent="CanvasLayer/Control/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +placeholder_text = "id" + +[node name="num" type="Label" parent="CanvasLayer/Control/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="cacul_num_number" type="Timer" parent="CanvasLayer/Control/HBoxContainer"] +autostart = true + +[node name="change_scene_0" type="Button" parent="CanvasLayer/Control/HBoxContainer"] +layout_mode = 2 +text = "切换到场景0" + +[node name="change_scene_1" type="Button" parent="CanvasLayer/Control/HBoxContainer"] +layout_mode = 2 +text = "切换到场景1" + +[node name="mouse_finder" type="Area2D" parent="."] +unique_name_in_owner = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="mouse_finder"] +shape = SubResource("CircleShape2D_shajf") + +[node name="CB_add_pos" type="Node2D" parent="."] +unique_name_in_owner = true +y_sort_enabled = true + +[node name="CharacterBody2D" parent="CB_add_pos" instance=ExtResource("2_nvm7o")] + +[connection signal="gui_input" from="CanvasLayer/Control" to="." method="_on_control_gui_input"] +[connection signal="timeout" from="CanvasLayer/Control/HBoxContainer/cacul_num_number" to="." method="_on_cacul_num_number_timeout"] +[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/change_scene_0" to="." method="_on_change_scene_0_pressed"] +[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/change_scene_1" to="." method="_on_change_scene_1_pressed"] diff --git a/scene/test/tesF9B9.tmp b/scene/test/tesF9B9.tmp new file mode 100644 index 0000000..37caf8f --- /dev/null +++ b/scene/test/tesF9B9.tmp @@ -0,0 +1,80 @@ +[gd_scene load_steps=4 format=3 uid="uid://1wl1fl3qtxc"] + +[ext_resource type="Script" path="res://scene/test/test_main.gd" id="1_aimp4"] +[ext_resource type="PackedScene" uid="uid://cf2g2urxaukxb" path="res://scene/test/character.tscn" id="2_nvm7o"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_shajf"] +radius = 38.71 + +[node name="main" type="Node2D" node_paths=PackedStringArray("player")] +script = ExtResource("1_aimp4") +player = NodePath("CB_add_pos/CharacterBody2D") + +[node name="map" type="Node2D" parent="."] + +[node name="CanvasLayer" type="CanvasLayer" parent="."] +layer = 2 + +[node name="Control" type="Control" parent="CanvasLayer"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/Control"] +layout_mode = 0 +offset_right = 272.0 +offset_bottom = 66.0 + +[node name="type" type="MenuButton" parent="CanvasLayer/Control/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +flat = false +item_count = 2 +popup/item_0/text = "test_character_base" +popup/item_1/text = "test_character_ranged" +popup/item_1/id = 1 + +[node name="put_check" type="CheckBox" parent="CanvasLayer/Control/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "投放" + +[node name="LineEdit" type="LineEdit" parent="CanvasLayer/Control/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 +placeholder_text = "id" + +[node name="num" type="Label" parent="CanvasLayer/Control/HBoxContainer"] +unique_name_in_owner = true +layout_mode = 2 + +[node name="cacul_num_number" type="Timer" parent="CanvasLayer/Control/HBoxContainer"] +autostart = true + +[node name="change_scene_0" type="Button" parent="CanvasLayer/Control/HBoxContainer"] +layout_mode = 2 +text = "切换到场景0" + +[node name="change_scene_1" type="Button" parent="CanvasLayer/Control/HBoxContainer"] +layout_mode = 2 +text = "切换到场景1" + +[node name="mouse_finder" type="Area2D" parent="."] +unique_name_in_owner = true + +[node name="CollisionShape2D" type="CollisionShape2D" parent="mouse_finder"] +shape = SubResource("CircleShape2D_shajf") + +[node name="CB_add_pos" type="Node2D" parent="."] +unique_name_in_owner = true +y_sort_enabled = true + +[node name="CharacterBody2D" parent="CB_add_pos" instance=ExtResource("2_nvm7o")] + +[connection signal="gui_input" from="CanvasLayer/Control" to="." method="_on_control_gui_input"] +[connection signal="timeout" from="CanvasLayer/Control/HBoxContainer/cacul_num_number" to="." method="_on_cacul_num_number_timeout"] +[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/change_scene_0" to="." method="_on_change_scene_0_pressed"] +[connection signal="pressed" from="CanvasLayer/Control/HBoxContainer/change_scene_1" to="." method="_on_change_scene_1_pressed"] diff --git a/scene/test/test_main.gd b/scene/test/test_main.gd index 4490248..c39d5c6 100644 --- a/scene/test/test_main.gd +++ b/scene/test/test_main.gd @@ -1,5 +1,5 @@ extends Node2D -@export var player: CharacterBody2D +@export var player: SelfUnit func _physics_process(delta: float) -> void: %mouse_finder.position=get_global_mouse_position() @@ -22,6 +22,7 @@ func _on_control_gui_input(event: InputEvent) -> void: %CB_add_pos.add_child(new_cb) new_cb.second_timer_time_out() return + var arr=%mouse_finder.get_overlapping_bodies() print(arr) if arr.size()==0: @@ -32,9 +33,14 @@ func _on_control_gui_input(event: InputEvent) -> void: player.sent_message("attack",target) pass - + pass # Replace with function body. - +func _input(event: InputEvent) -> void: + print(event) + if event.is_action_pressed("e") and player!=null and player.is_door_availible(): + print("检测到切换请求") + var door:Door =player.get_door() + change_map(door.map_id) func get_closest_node(self_node:Node2D,array:Array,target_class): if array.size()==0: return null @@ -71,8 +77,10 @@ func _on_cacul_num_number_timeout() -> void: %num.text="场上单位数量:"+str(Global.unit_instance_dic.keys().size()) pass # Replace with function body. -func change_map(map_id:String): +func change_map(map_id:String,ind:int=0): + print("map_changed:"+str(map_id)+",map_ind:"+str(ind)) if now_map!=null: + Global.map_dictionary.erase(now_map.map_id) now_map.queue_free() for i in %CB_add_pos.get_children(): if i is UnitOther: @@ -80,13 +88,19 @@ func change_map(map_id:String): Global.add_unit_id_save_map(i.unit_data) i.queue_free() - + var new_map_tscn=Database.get_map_data(map_id) if new_map_tscn==null: return var new_map=load(new_map_tscn).instantiate() as map new_map.map_id=map_id add_child(new_map) + var new_player= preload("res://scene/test/character.tscn").instantiate() + if player!=null: + player.queue_free() + player=new_player + new_player.global_position=new_map.get_mark_postion(ind) + %CB_add_pos.add_child(new_player) new_map.z_index-=1 now_map=new_map if not Global.is_map_initlized(map_id): diff --git a/scene/test/test_main.tscn b/scene/test/test_main.tscn index fd7f56b..37caf8f 100644 --- a/scene/test/test_main.tscn +++ b/scene/test/test_main.tscn @@ -73,9 +73,6 @@ unique_name_in_owner = true y_sort_enabled = true [node name="CharacterBody2D" parent="CB_add_pos" instance=ExtResource("2_nvm7o")] -unit_id = "player" -unit_type = "player" -unit_data_from_id = "test_character_base" [connection signal="gui_input" from="CanvasLayer/Control" to="." method="_on_control_gui_input"] [connection signal="timeout" from="CanvasLayer/Control/HBoxContainer/cacul_num_number" to="." method="_on_cacul_num_number_timeout"]