diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GamingMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GamingMultiKeysSetting.cs index 20d44709..91e3f459 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GamingMultiKeysSetting.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/GamingMultiKeysSetting.cs @@ -1,16 +1,12 @@ using AxibugEmuOnline.Client; using AxibugEmuOnline.Client.Common; using AxibugEmuOnline.Client.Manager; -using System.Collections.Generic; -using System.Linq; using UnityEngine; namespace Assets.Script.AppMain.AxiInput.Settings { - public class GamingMultiKeysSetting : MultiKeysSetting + public class GamingMultiKeysSetting : MultiKeysSettingBase { - public GamingSingleKeysSeting[] controllers; - public GamingMultiKeysSetting() { controllers = new GamingSingleKeysSeting[1]; @@ -18,21 +14,7 @@ namespace Assets.Script.AppMain.AxiInput.Settings controllers[i] = new GamingSingleKeysSeting(); } - public bool HadAnyKeyDown(int index) - { - if (index >= controllers.Length) - return false; - return controllers[index].HadAnyKeyDown(); - } - public void ClearAll() - { - for (int i = 0; i < controllers.Length; i++) - { - controllers[i].ClearAll(); - } - } - - public void LoadDefaultSetting() + public override void LoadDefaultSetting() { ClearAll(); @@ -54,103 +36,7 @@ namespace Assets.Script.AppMain.AxiInput.Settings } } - public class GamingSingleKeysSeting : SingleKeysSetting + public class GamingSingleKeysSeting : SingleKeySettingBase { - Dictionary> DictSkey2AxiInput = new Dictionary>(); - AxiInput[] AxiInputArr = null; - - public void SetKey(ulong Key, AxiInput input) - { - List list; - if (!DictSkey2AxiInput.TryGetValue((EnumCommand)Key, out list)) - list = DictSkey2AxiInput[(EnumCommand)Key] = ObjectPoolAuto.AcquireList(); - list.Add(input); - } - - public bool GetKey(EnumCommand Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKey()) - return true; - } - return false; - } - public bool GetKeyUp(EnumCommand Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKeyUp()) - return true; - } - return false; - } - public bool GetKeyDown(EnumCommand Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKeyDown()) - return true; - } - return false; - } - - public void ClearAll() - { - foreach (List singlelist in DictSkey2AxiInput.Values) - ObjectPoolAuto.Release(singlelist); - DictSkey2AxiInput.Clear(); - AxiInputArr = null; - } - - public void ColletAllKey() - { - List list = ObjectPoolAuto.AcquireList(); - foreach (List singlelist in DictSkey2AxiInput.Values) - list.AddRange(singlelist); - AxiInputArr = list.ToArray(); - ObjectPoolAuto.Release(list); - } - - public bool HadAnyKeyDown() - { - if (AxiInputArr == null) - return false; - - for (int i = 0; i < AxiInputArr.Length; i++) - { - if (AxiInputArr[i].GetKey()) - return true; - } - return false; - } - - public bool GetKey(ulong Key) - { - return GetKey((EnumCommand)Key); - } - public bool GetKeyDown(ulong Key) - { - return GetKeyDown((EnumCommand)Key); - } - public bool GetKeyUp(ulong Key) - { - return GetKeyUp((EnumCommand)Key); - } - - internal EnumCommand[] GetAllCmd() - { - return DictSkey2AxiInput.Keys.ToArray(); - } - } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/UMAMEMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/UMAMEMultiKeysSetting.cs index 77323f72..6d291e2d 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/UMAMEMultiKeysSetting.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/UMAMEMultiKeysSetting.cs @@ -1,7 +1,4 @@ -using AxibugEmuOnline.Client; -using AxibugEmuOnline.Client.Common; -using AxibugEmuOnline.Client.Manager; -using System.Collections.Generic; +using AxibugEmuOnline.Client.Manager; using UnityEngine; namespace Assets.Script.AppMain.AxiInput.Settings @@ -21,32 +18,16 @@ namespace Assets.Script.AppMain.AxiInput.Settings BTN_E, BTN_F } - public class UMAMEMultiKeysSetting : MultiKeysSetting + public class UMAMEMultiKeysSetting : MultiKeysSettingBase { - public UMAMEKSingleKeysSeting[] controllers; - public UMAMEMultiKeysSetting() { - controllers = new UMAMEKSingleKeysSeting[4]; + controllers = new UMAMEKSingleKeysSeting[1]; for (int i = 0; i < controllers.Length; i++) controllers[i] = new UMAMEKSingleKeysSeting(); } - public bool HadAnyKeyDown(int index) - { - if (index >= controllers.Length) - return false; - return controllers[index].HadAnyKeyDown(); - } - public void ClearAll() - { - for (int i = 0; i < controllers.Length; i++) - { - controllers[i].ClearAll(); - } - } - - public void LoadDefaultSetting() + public override void LoadDefaultSetting() { ClearAll(); #if UNITY_PSP2 && !UNITY_EDITOR @@ -110,100 +91,7 @@ namespace Assets.Script.AppMain.AxiInput.Settings #endregion } } - public class UMAMEKSingleKeysSeting : SingleKeysSetting + public class UMAMEKSingleKeysSeting : SingleKeySettingBase { - Dictionary> DictSkey2AxiInput = new Dictionary>(); - AxiInput[] AxiInputArr = null; - - public void SetKey(ulong Key, AxiInput input) - { - List list; - if (!DictSkey2AxiInput.TryGetValue((UMAMEKSingleKey)Key, out list)) - list = DictSkey2AxiInput[(UMAMEKSingleKey)Key] = ObjectPoolAuto.AcquireList(); - list.Add(input); - } - - public bool GetKey(UMAMEKSingleKey Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKey()) - return true; - } - return false; - } - public bool GetKeyUp(UMAMEKSingleKey Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKeyUp()) - return true; - } - return false; - } - - public bool GetKeyDown(UMAMEKSingleKey Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKeyDown()) - return true; - } - return false; - } - - - public bool GetKey(ulong Key) - { - return GetKey((UMAMEKSingleKey)Key); - } - public bool GetKeyDown(ulong Key) - { - return GetKeyDown((UMAMEKSingleKey)Key); - } - public bool GetKeyUp(ulong Key) - { - return GetKeyUp((UMAMEKSingleKey)Key); - } - - public void ClearAll() - { - foreach (List singlelist in DictSkey2AxiInput.Values) - ObjectPoolAuto.Release(singlelist); - DictSkey2AxiInput.Clear(); - AxiInputArr = null; - } - - public void ColletAllKey() - { - List list = ObjectPoolAuto.AcquireList(); - foreach (List singlelist in DictSkey2AxiInput.Values) - list.AddRange(singlelist); - AxiInputArr = list.ToArray(); - ObjectPoolAuto.Release(list); - } - - public bool HadAnyKeyDown() - { - if (AxiInputArr == null) - return false; - - for (int i = 0; i < AxiInputArr.Length; i++) - { - if (AxiInputArr[i].GetKey()) - return true; - } - return false; - } - } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/XMBMultiKeysSetting.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/XMBMultiKeysSetting.cs index 6c550639..95734be6 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/XMBMultiKeysSetting.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/AxiInput.Settings/XMBMultiKeysSetting.cs @@ -1,18 +1,12 @@ using AxibugEmuOnline.Client; using AxibugEmuOnline.Client.Common; using AxibugEmuOnline.Client.Manager; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; using UnityEngine; namespace Assets.Script.AppMain.AxiInput.Settings { - public class XMBMultiKeysSetting : MultiKeysSetting + public class XMBMultiKeysSetting : MultiKeysSettingBase { - public XMBSingleKeysSeting[] controllers; - public XMBMultiKeysSetting() { controllers = new XMBSingleKeysSeting[1]; @@ -20,21 +14,7 @@ namespace Assets.Script.AppMain.AxiInput.Settings controllers[i] = new XMBSingleKeysSeting(); } - public bool HadAnyKeyDown(int index) - { - if (index >= controllers.Length) - return false; - return controllers[index].HadAnyKeyDown(); - } - public void ClearAll() - { - for (int i = 0; i < controllers.Length; i++) - { - controllers[i].ClearAll(); - } - } - - public void LoadDefaultSetting() + public override void LoadDefaultSetting() { ClearAll(); @@ -86,104 +66,7 @@ namespace Assets.Script.AppMain.AxiInput.Settings } } - public class XMBSingleKeysSeting : SingleKeysSetting + public class XMBSingleKeysSeting : SingleKeySettingBase { - Dictionary> DictSkey2AxiInput = new Dictionary>(); - AxiInput[] AxiInputArr = null; - - public void SetKey(ulong Key, AxiInput input) - { - List list; - if (!DictSkey2AxiInput.TryGetValue((EnumCommand)Key, out list)) - list = DictSkey2AxiInput[(EnumCommand)Key] = ObjectPoolAuto.AcquireList(); - list.Add(input); - } - - public bool GetKey(EnumCommand Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKey()) - return true; - } - return false; - } - public bool GetKeyUp(EnumCommand Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKeyUp()) - return true; - } - return false; - } - - public bool GetKeyDown(EnumCommand Key) - { - List list; - if (!DictSkey2AxiInput.TryGetValue(Key, out list)) - return false; - for (int i = 0; i < list.Count; i++) - { - if (list[i].GetKeyDown()) - return true; - } - return false; - } - - public void ClearAll() - { - foreach (List singlelist in DictSkey2AxiInput.Values) - ObjectPoolAuto.Release(singlelist); - DictSkey2AxiInput.Clear(); - AxiInputArr = null; - } - - public void ColletAllKey() - { - List list = ObjectPoolAuto.AcquireList(); - foreach (List singlelist in DictSkey2AxiInput.Values) - list.AddRange(singlelist); - AxiInputArr = list.ToArray(); - ObjectPoolAuto.Release(list); - } - - public bool HadAnyKeyDown() - { - if (AxiInputArr == null) - return false; - - for (int i = 0; i < AxiInputArr.Length; i++) - { - if (AxiInputArr[i].GetKey()) - return true; - } - return false; - } - - public bool GetKey(ulong Key) - { - return GetKey((EnumCommand)Key); - } - public bool GetKeyDown(ulong Key) - { - return GetKeyDown((EnumCommand)Key); - } - public bool GetKeyUp(ulong Key) - { - return GetKeyUp((EnumCommand)Key); - } - - internal EnumCommand[] GetAllCmd() - { - return DictSkey2AxiInput.Keys.ToArray(); - } - } } diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniKeyboard.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniKeyboard.cs index e0140a68..6a032731 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniKeyboard.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Emulator/MameEmulator/UniInterface/UniKeyboard.cs @@ -335,18 +335,18 @@ public class MameSingleConoller : IController CurrLocalSingleAllInput = 0; var keys = App.input.mame.controllers[ControllerIndex]; - if (keys.GetKey(UMAMEKSingleKey.INSERT_COIN)) CurrLocalSingleAllInput |= (ulong)tg_INSERT_COIN; - if (keys.GetKey(UMAMEKSingleKey.GAMESTART)) CurrLocalSingleAllInput |= (ulong)tg_GAMESTART; - if (keys.GetKey(UMAMEKSingleKey.UP)) CurrLocalSingleAllInput |= (ulong)tg_UP; - if (keys.GetKey(UMAMEKSingleKey.DOWN)) CurrLocalSingleAllInput |= (ulong)tg_DOWN; - if (keys.GetKey(UMAMEKSingleKey.LEFT)) CurrLocalSingleAllInput |= (ulong)tg_LEFT; - if (keys.GetKey(UMAMEKSingleKey.RIGHT)) CurrLocalSingleAllInput |= (ulong)tg_RIGHT; - if (keys.GetKey(UMAMEKSingleKey.BTN_A)) CurrLocalSingleAllInput |= (ulong)tg_BTN_A; - if (keys.GetKey(UMAMEKSingleKey.BTN_B)) CurrLocalSingleAllInput |= (ulong)tg_BTN_B; - if (keys.GetKey(UMAMEKSingleKey.BTN_C)) CurrLocalSingleAllInput |= (ulong)tg_BTN_C; - if (keys.GetKey(UMAMEKSingleKey.BTN_D)) CurrLocalSingleAllInput |= (ulong)tg_BTN_D; - if (keys.GetKey(UMAMEKSingleKey.BTN_E)) CurrLocalSingleAllInput |= (ulong)tg_BTN_E; - if (keys.GetKey(UMAMEKSingleKey.BTN_F)) CurrLocalSingleAllInput |= (ulong)tg_BTN_F; + if (keys.GetKey((ulong)UMAMEKSingleKey.INSERT_COIN)) CurrLocalSingleAllInput |= (ulong)tg_INSERT_COIN; + if (keys.GetKey((ulong)UMAMEKSingleKey.GAMESTART)) CurrLocalSingleAllInput |= (ulong)tg_GAMESTART; + if (keys.GetKey((ulong)UMAMEKSingleKey.UP)) CurrLocalSingleAllInput |= (ulong)tg_UP; + if (keys.GetKey((ulong)UMAMEKSingleKey.DOWN)) CurrLocalSingleAllInput |= (ulong)tg_DOWN; + if (keys.GetKey((ulong)UMAMEKSingleKey.LEFT)) CurrLocalSingleAllInput |= (ulong)tg_LEFT; + if (keys.GetKey((ulong)UMAMEKSingleKey.RIGHT)) CurrLocalSingleAllInput |= (ulong)tg_RIGHT; + if (keys.GetKey((ulong)UMAMEKSingleKey.BTN_A)) CurrLocalSingleAllInput |= (ulong)tg_BTN_A; + if (keys.GetKey((ulong)UMAMEKSingleKey.BTN_B)) CurrLocalSingleAllInput |= (ulong)tg_BTN_B; + if (keys.GetKey((ulong)UMAMEKSingleKey.BTN_C)) CurrLocalSingleAllInput |= (ulong)tg_BTN_C; + if (keys.GetKey((ulong)UMAMEKSingleKey.BTN_D)) CurrLocalSingleAllInput |= (ulong)tg_BTN_D; + if (keys.GetKey((ulong)UMAMEKSingleKey.BTN_E)) CurrLocalSingleAllInput |= (ulong)tg_BTN_E; + if (keys.GetKey((ulong)UMAMEKSingleKey.BTN_F)) CurrLocalSingleAllInput |= (ulong)tg_BTN_F; //if (Input.GetKey(INSERT_COIN)) CurrLocalSingleAllInput |= (ulong)tg_INSERT_COIN; //if (Input.GetKey(GAMESTART)) CurrLocalSingleAllInput |= (ulong)tg_GAMESTART; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/IkeyMapperChanger/GamingChanger.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/IkeyMapperChanger/GamingChanger.cs index 6bde9c9e..4a632405 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/IkeyMapperChanger/GamingChanger.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/IkeyMapperChanger/GamingChanger.cs @@ -1,5 +1,7 @@ -using AxibugEmuOnline.Client.ClientCore; +using Assets.Script.AppMain.AxiInput.Settings; +using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.Manager; +using System; namespace AxibugEmuOnline.Client { @@ -7,7 +9,7 @@ namespace AxibugEmuOnline.Client { public override EnumCommand[] GetConfig() { - return App.input.gaming.controllers[0].GetAllCmd(); + return App.input.gaming.controllers[0].GetAllCmd(); } public override SingleKeysSetting GetKeySetting() diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/IkeyMapperChanger/NormalChanger.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/IkeyMapperChanger/NormalChanger.cs index b2a61332..bdf6c2b1 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/IkeyMapperChanger/NormalChanger.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/IkeyMapperChanger/NormalChanger.cs @@ -1,5 +1,7 @@ -using AxibugEmuOnline.Client.ClientCore; +using Assets.Script.AppMain.AxiInput.Settings; +using AxibugEmuOnline.Client.ClientCore; using AxibugEmuOnline.Client.Manager; +using System; namespace AxibugEmuOnline.Client { @@ -8,7 +10,7 @@ namespace AxibugEmuOnline.Client { public override EnumCommand[] GetConfig() { - return App.input.xmb.controllers[0].GetAllCmd(); + return App.input.xmb.controllers[0].GetAllCmd(); } public override SingleKeysSetting GetKeySetting() diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppInput.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppInput.cs index 8d9f2f12..875fb2ef 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppInput.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/Manager/AppInput.cs @@ -1,5 +1,10 @@ using Assets.Script.AppMain.AxiInput; using Assets.Script.AppMain.AxiInput.Settings; +using AxibugEmuOnline.Client.Common; +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; using UnityEngine.UIElements.Experimental; namespace AxibugEmuOnline.Client.Manager @@ -31,7 +36,6 @@ namespace AxibugEmuOnline.Client.Manager void ClearAll(); void LoadDefaultSetting(); } - public interface SingleKeysSetting { void ClearAll(); @@ -43,4 +47,111 @@ namespace AxibugEmuOnline.Client.Manager bool HadAnyKeyDown(); } + public abstract class MultiKeysSettingBase : MultiKeysSetting + { + public SingleKeySettingBase[] controllers; + + public bool HadAnyKeyDown(int index) + { + if (index >= controllers.Length) + return false; + return controllers[index].HadAnyKeyDown(); + } + public void ClearAll() + { + for (int i = 0; i < controllers.Length; i++) + controllers[i].ClearAll(); + } + + public abstract void LoadDefaultSetting(); + } + + + public abstract class SingleKeySettingBase : SingleKeysSetting + { + protected Dictionary> mDictSkey2AxiInput = new Dictionary>(); + protected AxiInput[] AxiInputArr = null; + + public void SetKey(ulong Key, AxiInput input) + { + List list; + if (!mDictSkey2AxiInput.TryGetValue(Key, out list)) + list = mDictSkey2AxiInput[Key] = ObjectPoolAuto.AcquireList(); + list.Add(input); + } + + public bool GetKey(ulong Key) + { + List list; + if (!mDictSkey2AxiInput.TryGetValue(Key, out list)) + return false; + for (int i = 0; i < list.Count; i++) + { + if (list[i].GetKey()) + return true; + } + return false; + } + public bool GetKeyUp(ulong Key) + { + List list; + if (!mDictSkey2AxiInput.TryGetValue(Key, out list)) + return false; + for (int i = 0; i < list.Count; i++) + { + if (list[i].GetKeyUp()) + return true; + } + return false; + } + + public bool GetKeyDown(ulong Key) + { + List list; + if (!mDictSkey2AxiInput.TryGetValue(Key, out list)) + return false; + for (int i = 0; i < list.Count; i++) + { + if (list[i].GetKeyDown()) + return true; + } + return false; + } + + public void ClearAll() + { + foreach (List singlelist in mDictSkey2AxiInput.Values) + ObjectPoolAuto.Release(singlelist); + mDictSkey2AxiInput.Clear(); + AxiInputArr = null; + } + + public void ColletAllKey() + { + List list = ObjectPoolAuto.AcquireList(); + foreach (List singlelist in mDictSkey2AxiInput.Values) + list.AddRange(singlelist); + AxiInputArr = list.ToArray(); + ObjectPoolAuto.Release(list); + } + + public bool HadAnyKeyDown() + { + if (AxiInputArr == null) + return false; + + for (int i = 0; i < AxiInputArr.Length; i++) + { + if (AxiInputArr[i].GetKey()) + return true; + } + return false; + } + + public T[] GetAllCmd() + { + return mDictSkey2AxiInput.Keys.Select(k => (T)Enum.ToObject(typeof(T), k)).ToArray(); + } + } + } \ No newline at end of file diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MainMenuController.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MainMenuController.cs index 2a5dc0de..3f10d981 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MainMenuController.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MainMenuController.cs @@ -129,14 +129,18 @@ namespace AxibugEmuOnline.Client.UI protected override void OnCmdSelectItemLeft() { + int old = SelectIndex; SelectIndex--; - App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); + if (old != SelectIndex) + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); } protected override void OnCmdSelectItemRight() { + int old = SelectIndex; SelectIndex++; - App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); + if (old != SelectIndex) + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); } #if UNITY_EDITOR diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MenuItemController.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MenuItemController.cs index 90b0ae00..c5dc4dc3 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MenuItemController.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/MenuItemController.cs @@ -1,4 +1,5 @@ -using AxibugEmuOnline.Client.UI; +using AxibugEmuOnline.Client.ClientCore; +using AxibugEmuOnline.Client.UI; using System.Collections.Generic; using UnityEngine; diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI.cs index 14e572e5..647d27b6 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/OptionUI/OptionUI.cs @@ -302,17 +302,19 @@ namespace AxibugEmuOnline.Client } protected override void OnCmdSelectItemDown() - { - SelectIndex++; - //TODO 已经到底的情况下,不播放音效 - App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); + { + int old = SelectIndex; + SelectIndex++; + if (old != SelectIndex) + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); } protected override void OnCmdSelectItemUp() - { - SelectIndex--; - //TODO 已经到顶的情况下,不播放音效 - App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); + { + int old = SelectIndex; + SelectIndex--; + if (old != SelectIndex) + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); } protected override void OnCmdBack() diff --git a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/SubMenuItemGroup.cs b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/SubMenuItemGroup.cs index 69d99528..257078e9 100644 --- a/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/SubMenuItemGroup.cs +++ b/AxibugEmuOnline.Client/Assets/Script/AppMain/UI/SubMenuItemGroup.cs @@ -75,33 +75,36 @@ namespace AxibugEmuOnline.Client } protected override void OnCmdBack() - { + { + if (m_enteredItem != null) + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Cancel); + base.OnCmdBack(); LaunchUI.Instance.ToMainMenuLayout(); var item = GetItemUIByIndex(SelectIndex); item.SetSelectState(true); - //TODO 已经关闭三级菜单的情况下 不播放 - App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Cancel); } protected override void OnCmdSelectItemUp() { if (m_enteredItem == null) - { + { + int old = SelectIndex; SelectIndex--; - //TODO 已经到底的情况下,不播放音效 - App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); + if (old != SelectIndex) + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Cursor); } } protected override void OnCmdSelectItemDown() { if (m_enteredItem == null) - { + { + int old = SelectIndex; SelectIndex++; - //TODO 已经到顶的情况下,不播放音效 - App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); + if (old != SelectIndex) + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Cursor); } } @@ -130,9 +133,13 @@ namespace AxibugEmuOnline.Client protected override void OnCmdSelectItemLeft() { + if(m_enteredItem != null) + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Cancel); + else + App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Option); + base.OnCmdSelectItemLeft(); OnCmdBack(); - App.audioMgr.PlaySFX(AudioMgr.E_SFXTYPE.Cancel); } protected override void OnSelectMenuChanged()