feat:角色展示添加设置菜单

This commit is contained in:
m0_75251201
2025-11-19 10:17:55 +08:00
parent bef0d43792
commit f80e166574
21 changed files with 569 additions and 24 deletions

View File

@@ -22,10 +22,12 @@ namespace CharacterPreview
[Serializable]
public class Config
{
private const string MOD_ID = "CharacterPreview";
private string configSavePath;
public ConfigData data = new ConfigData();
public Config(string savePath)
{
configSavePath = savePath;
@@ -58,7 +60,58 @@ namespace CharacterPreview
var config = new Config(savePath);
config.data = loadedData ?? new ConfigData();
config.GenerateSetting();
return config;
}
public void GenerateSetting()
{
if (!Api.ModConfigAPI.Initialize())
return;
Api.ModConfigAPI.SafeAddBoolDropdownList(MOD_ID, "use", "使用配置中保存的位置数据", data.use);
Api.ModConfigAPI.SafeAddBoolDropdownList(MOD_ID, "tip", "开启操作提示", data.tip);
Api.ModConfigAPI.SafeAddBoolDropdownList(MOD_ID,"hideCamera","隐藏摄像机模型", data.hideCamera);
Api.ModConfigAPI.SafeAddBoolDropdownList(MOD_ID, "showSetEditButton", "显示启用编辑按钮", data.showSetEditButton);
Api.ModConfigAPI.SafeAddBoolDropdownList(MOD_ID, "canEdit", "是否启用编辑", data.canEdit);
Api.ModConfigAPI.SafeAddBoolDropdownList(MOD_ID, "showEquipment", "显示装备", data.showEquipment);
Api.ModConfigAPI.SafeAddInputWithSlider(MOD_ID, "editSpeed", "编辑灵敏度", typeof(float), 1,
new Vector2(0.1f, 10));
Api.ModConfigAPI.SafeAddOnOptionsChangedDelegate(OnSettingChange);
}
public void OnSettingChange(string key)
{
var content = key.Split('_');
if(content.Length<2||content[0]!=MOD_ID)
return;
key = content[1];
Debug.Log($"OnSettingChange_{key}");
switch (key)
{
case "use":
data.use = Api.ModConfigAPI.SafeLoad(MOD_ID, "use", false);
break;
case "tip":
data.tip = Api.ModConfigAPI.SafeLoad(MOD_ID, "tip", true);
break;
case "hideCamera":
data.hideCamera = Api.ModConfigAPI.SafeLoad(MOD_ID, "hideCamera", true);
break;
case "showSetEditButton":
data.showSetEditButton = Api.ModConfigAPI.SafeLoad(MOD_ID, "showSetEditButton", true);
break;
case "canEdit":
data.canEdit = Api.ModConfigAPI.SafeLoad(MOD_ID, "canEdit", true);
break;
case "showEquipment":
data.showEquipment = Api.ModConfigAPI.SafeLoad(MOD_ID, "showEquipment", true);
break;
case "editSpeed":
data.editSpeed = Api.ModConfigAPI.SafeLoad(MOD_ID, "editSpeed", 1f);
break;
}
}
}
}