diff --git a/Assets/Resources/Fgui/Main/Main_fui.bytes b/Assets/Resources/Fgui/Main/Main_fui.bytes index 654a153ca..bc8a5c019 100644 Binary files a/Assets/Resources/Fgui/Main/Main_fui.bytes and b/Assets/Resources/Fgui/Main/Main_fui.bytes differ diff --git a/Assets/Scripts/Common/Services/Settings/GameSettings.cs b/Assets/Scripts/Common/Services/Settings/GameSettings.cs index 59641a356..ecacfa200 100644 --- a/Assets/Scripts/Common/Services/Settings/GameSettings.cs +++ b/Assets/Scripts/Common/Services/Settings/GameSettings.cs @@ -67,7 +67,8 @@ namespace NBF /// /// 质量等级 0 1 2 3 /// - [Title("Settings_Title_quality")] [Description("Settings_Description_quality")] + // [Title("Settings_Title_quality")] [Description("Settings_Description_quality")] + [Title("图像质量")] [Description("图像质量324234图像质量图像质量图像质量图像质量3434")] public QualityEnum QualityLevel = QualityEnum.High; /// diff --git a/Assets/Scripts/NBC/Language/Runtime/Lan.cs b/Assets/Scripts/NBC/Language/Runtime/Lan.cs index c9bb7bdce..3417f1966 100644 --- a/Assets/Scripts/NBC/Language/Runtime/Lan.cs +++ b/Assets/Scripts/NBC/Language/Runtime/Lan.cs @@ -21,6 +21,7 @@ public static string Get(string key) { + if(Text == null) return key; return Text.Get(key); } diff --git a/Assets/Scripts/UI/Binders/MainBinder.cs b/Assets/Scripts/UI/Binders/MainBinder.cs index 40bebdfe0..3dc32c59d 100644 --- a/Assets/Scripts/UI/Binders/MainBinder.cs +++ b/Assets/Scripts/UI/Binders/MainBinder.cs @@ -8,6 +8,7 @@ namespace NBF { public static void BindAll() { + UIObjectFactory.SetPackageItemExtension(SettingItem.URL, typeof(SettingItem)); } } } \ No newline at end of file diff --git a/Assets/Scripts/UI/Common/Menu/CommonMenu.cs b/Assets/Scripts/UI/Common/Menu/CommonMenu.cs index 70b5ff8d3..1e5abbf7c 100644 --- a/Assets/Scripts/UI/Common/Menu/CommonMenu.cs +++ b/Assets/Scripts/UI/Common/Menu/CommonMenu.cs @@ -47,7 +47,7 @@ namespace NBF { var tabData = tabList[i]; var tabItem = List.AddItemFromPool().asButton; - tabItem.title = tabData.Tab.Name; + tabItem.title = Lan.Get(tabData.Tab.Name); listWidth += tabItem.width; if (i > 0) { diff --git a/Assets/Scripts/UI/Common/Menu/CommonSubMenu.cs b/Assets/Scripts/UI/Common/Menu/CommonSubMenu.cs index 18ab2da27..11c20f2ef 100644 --- a/Assets/Scripts/UI/Common/Menu/CommonSubMenu.cs +++ b/Assets/Scripts/UI/Common/Menu/CommonSubMenu.cs @@ -47,7 +47,7 @@ namespace NBF { var tabData = subItems[i]; var tabItem = List.AddItemFromPool().asButton; - tabItem.title = tabData.Name; + tabItem.title = Lan.Get(tabData.Name); width += tabItem.width; if (i > 0) { diff --git a/Assets/Scripts/UI/Home/SettingItem.Designer.cs b/Assets/Scripts/UI/Home/SettingItem.Designer.cs new file mode 100644 index 000000000..6acbbc766 --- /dev/null +++ b/Assets/Scripts/UI/Home/SettingItem.Designer.cs @@ -0,0 +1,37 @@ +/**本脚本为自动生成,每次生成会覆盖!请勿手动修改,生成插件文档及项目地址:https://git.whoot.com/whoot-games/whoot.fguieditorplugin**/ + + +using FairyGUI; +using FairyGUI.Utils; +using NBC; + +namespace NBF +{ + public partial class SettingItem + { + public const string URL = "ui://hxr7rc7pe9z88"; + + public Controller style; + public GImage back; + public GTextField TextName; + public GTextField TextInfo; + public GSlider Slider; + public BtnInputControl BtnPrev; + public BtnInputControl BtnNext; + + public override void ConstructFromXML(XML xml) + { + base.ConstructFromXML(xml); + + style = GetController("style"); + back = (GImage)GetChild("back"); + TextName = (GTextField)GetChild("TextName"); + TextInfo = (GTextField)GetChild("TextInfo"); + Slider = (GSlider)GetChild("Slider"); + BtnPrev = (BtnInputControl)GetChild("BtnPrev"); + BtnNext = (BtnInputControl)GetChild("BtnNext"); + OnInited(); + UILanguage.TrySetComponentLanguage(this); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/UI/Home/SettingItem.Designer.cs.meta b/Assets/Scripts/UI/Home/SettingItem.Designer.cs.meta new file mode 100644 index 000000000..e3f4c4a88 --- /dev/null +++ b/Assets/Scripts/UI/Home/SettingItem.Designer.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: a99a3eda0b402314e998ff820ebb5b4d \ No newline at end of file diff --git a/Assets/Scripts/UI/Home/SettingItem.cs b/Assets/Scripts/UI/Home/SettingItem.cs new file mode 100644 index 000000000..4c17dad56 --- /dev/null +++ b/Assets/Scripts/UI/Home/SettingItem.cs @@ -0,0 +1,38 @@ +// 本脚本只在不存在时会生成一次。组件逻辑写在当前脚本内。已存在不会再次生成覆盖 + +using System.IO; +using System.Reflection; +using UnityEngine; +using FairyGUI; +using NBC; +using Unity.VisualScripting; + +namespace NBF +{ + public partial class SettingItem : GButton + { + public string TitleKey; + public string DescriptionKey; + + private void OnInited() + { + } + + public void SetData(FieldInfo field, object value) + { + var titleAttribute = field.GetAttribute(); + if (titleAttribute != null) + { + TitleKey = titleAttribute.Title; + } + + var descriptionAttribute = field.GetAttribute(); + if (descriptionAttribute != null) + { + DescriptionKey = descriptionAttribute.Description; + } + + TextName.text = Lan.Get(TitleKey); + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/UI/Home/SettingItem.cs.meta b/Assets/Scripts/UI/Home/SettingItem.cs.meta new file mode 100644 index 000000000..0c6ca930e --- /dev/null +++ b/Assets/Scripts/UI/Home/SettingItem.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 80e8fd431260afb49a8f82e2b17ad93d \ No newline at end of file diff --git a/Assets/Scripts/UI/Home/SettingPanel.cs b/Assets/Scripts/UI/Home/SettingPanel.cs index 4186cf067..202562db5 100644 --- a/Assets/Scripts/UI/Home/SettingPanel.cs +++ b/Assets/Scripts/UI/Home/SettingPanel.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using UnityEngine; using NBC; +using Unity.VisualScripting; namespace NBF { @@ -13,6 +14,8 @@ namespace NBF private List tabList = new List(); + private object _currentSettingsObject; + protected override void OnInit() { base.OnInit(); @@ -50,20 +53,32 @@ namespace NBF private void ChangeTab(int index) { Log.Info($"Change tab index={index}"); - // var tabListData = _tabList[index]; - // _currentTab = tabListData; - // SubMenu.SetTabs(_currentTab.SubTab); + var tabListData = tabList[index]; + _currentSettingsObject = tabListData.SettingsObject; + ResetSettingList(); } + private void ResetSettingList() + { + List.RemoveChildrenToPool(); + if (_currentSettingsObject == null) return; + var fields = _currentSettingsObject.GetType().GetFields(); + foreach (var field in fields) + { + if (List.AddItemFromPool() is SettingItem item) + { + item.SetData(field, _currentSettingsObject); + } + } + } + private void Reset() { - } private void Save() { - } protected override void OnHide() diff --git a/FGUIProject/assets/Main/SettingPanel.xml b/FGUIProject/assets/Main/SettingPanel.xml index db8ab97a4..ea33a749e 100644 --- a/FGUIProject/assets/Main/SettingPanel.xml +++ b/FGUIProject/assets/Main/SettingPanel.xml @@ -11,7 +11,7 @@ - + diff --git a/FGUIProject/settings/whoot/hxr7rc7pe9z88.json b/FGUIProject/settings/whoot/hxr7rc7pe9z88.json new file mode 100644 index 000000000..795876781 --- /dev/null +++ b/FGUIProject/settings/whoot/hxr7rc7pe9z88.json @@ -0,0 +1 @@ +{"url":"ui://hxr7rc7pe9z88","name":"SettingItem","scriptType":"component","isCustomName":false,"customName":"","annotation":"","member":{}} \ No newline at end of file diff --git a/Fishing2.sln.DotSettings.user b/Fishing2.sln.DotSettings.user index 26cdb5867..13a1fa6cf 100644 --- a/Fishing2.sln.DotSettings.user +++ b/Fishing2.sln.DotSettings.user @@ -1,6 +1,7 @@  ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded