extends Control const ABILITY_BUTTON = preload("res://scene/ability_button.tscn") const ATTRIBUTE = preload("res://scene/attribute.tscn") const SELECTED = preload("res://res/ui/ui_005_basic_message/selected.tres") var data={ "character":{ "name":"角色名字", "star":5, "skin":[ { "name":"皮肤1", "card_face":"卡面图片路径", "character":"角色图片路径" } ], "skin_now_use":0 }, "basic_mes":{ "script_category":"剧本类别", "place":"地点", "sex":0, #0为男,1为女 "race":"种族", "birthday":"xxxx-xx-xx", "introduction":"这是一个介绍", "basic_attribute":[ { "name":"体质", "value":100, }, { "name":"敏捷", "value":100, }, { "name":"智力", "value":100, }, { "name":"感知", "value":100, }, ], "fight_attribute":[ { "name":"生命", "value":100, }, { "name":"精神", "value":100, }, { "name":"物理攻击", "value":100, }, { "name":"法术强度", "value":100, }, ] }, "special":[ { "name":"倾国倾城", "introduction":"鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果" } ], "ability":[ { "name":"武学 LV3", "introduction":"鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果鼠标点击显示具体效果" } ], "favor":[{ "name":"姐姐", "value":100 } ], "reputation":[ { "name":"某地区", "value":100 } ] } @onready var button_group:Array[Button]=[$VBoxContainer/TextureRect/HBoxContainer/Button, $VBoxContainer/TextureRect/HBoxContainer/Button2, $VBoxContainer/TextureRect/HBoxContainer/Button3, $VBoxContainer/TextureRect/HBoxContainer/Button4, $VBoxContainer/TextureRect/HBoxContainer/Button5, $VBoxContainer/TextureRect/HBoxContainer/Button6] @onready var now_selected_button:Button=$VBoxContainer/TextureRect/HBoxContainer/Button func init_from_data(): for i in %special_container.get_children(): i.queue_free() for i in %ability_container.get_children(): i.queue_free() if data.has("basic_mes"): var basic_data=data["basic_mes"] %category.text=basic_data["script_category"] %place.text=basic_data["place"] #缺少性别 %race.text=basic_data["race"] %birthday.text=basic_data["birthday"] %introduction.text=basic_data["introduction"] var basic_attribute=basic_data["basic_attribute"] var fight_attribute=basic_data["fight_attribute"] for i in %basic_attribute.get_children(): i.queue_free() for i in %fight_attribute.get_children(): i.queue_free() for i in basic_attribute: var new_attribute=ATTRIBUTE.instantiate() new_attribute.data=i %basic_attribute.add_child(new_attribute) for i in fight_attribute: var new_attribute=ATTRIBUTE.instantiate() new_attribute.data=i %fight_attribute.add_child(new_attribute) pass if data.has("special"): var special_data=data["special"] for i in special_data: var new_button=ABILITY_BUTTON.instantiate() new_button.show_mes=i["introduction"] new_button.text=i["name"] %special_container.add_child(new_button) if data.has("ability"): var ability_data=data["ability"] for i in ability_data: var new_button=ABILITY_BUTTON.instantiate() new_button.show_mes=i["introduction"] new_button.text=i["name"] %ability_container.add_child(new_button) if data.has("character"): var character_data=data["character"] %character_name.text=character_data["name"] var star_arr=%star_container.get_children() var star_num:int=character_data["star"] for i in star_arr.size(): if i void: init_from_data() connect_button()