diff --git a/AGENTS.md b/AGENTS.md index 5109871..34ff492 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -21,3 +21,32 @@ - При создании контекста решения обязательно объединять актуальное состояние репозитория и Unity Editor с информацией из `agentmemory`; не полагаться только на текущий чат. - Перед завершением задачи фиксировать в `agentmemory` важные изменения, решения и результаты проверки. - Если `agentmemory` недоступен, явно сообщить об этом пользователю. Попытка обратиться к `agentmemory` всё равно обязательна; задача не должна молча обходить это требование. + +# Code Style + +## Структура скрипта (строгий порядок) + +1. `public event` +2. `public` поля +3. `[SerializeField] private` поля +4. `private` поля +5. Свойства +6. Unity-методы (`Awake` → `OnEnable` → `Start` → `Update` → `FixedUpdate` → `LateUpdate` → `OnDisable` → `OnDestroy`) +7. Публичные методы +8. Приватные методы + +## Именование + +| Что | Как | +|-----|-----| +| Публичные поля | `camelCase` | +| Публичные события | `PascalCase` | +| `[SerializeField] private` | `_camelCase` | +| Приватные поля | `_camelCase` | +| Свойства | `PascalCase` | +| Параметры методов | `camelCase` | + +## Комментарии + +- **Без `/// `** +- Комментарии только для сложной/неочевидной логики \ No newline at end of file diff --git a/Assets/Scenes/GameScene3D.unity b/Assets/Scenes/GameScene3D.unity index 8705e8f..f718f02 100644 --- a/Assets/Scenes/GameScene3D.unity +++ b/Assets/Scenes/GameScene3D.unity @@ -1075,7 +1075,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 698.89, y: -613.41504} + m_AnchoredPosition: {x: 698.88995, y: -613.41504} m_SizeDelta: {x: 1342.78, y: 1342.78} m_Pivot: {x: 1, y: 0} --- !u!114 &64783861 @@ -2638,9 +2638,6 @@ MonoBehaviour: chipYOffset: 5 prepareSpeed: 30 moveSpeed: 50 - leftButtons: 03000000 - rightButtons: 01000000 - actionButtons: 04000000 --- !u!4 &245771469 Transform: m_ObjectHideFlags: 0 @@ -3537,9 +3534,6 @@ MonoBehaviour: chipYOffset: 5 prepareSpeed: 30 moveSpeed: 50 - leftButtons: 03000000 - rightButtons: 01000000 - actionButtons: 04000000 --- !u!4 &304437820 Transform: m_ObjectHideFlags: 0 @@ -18842,7 +18836,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1967587903 RectTransform: m_ObjectHideFlags: 0 @@ -19613,7 +19607,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: -587.89, y: 673.615} + m_AnchoredPosition: {x: -587.88995, y: 673.615} m_SizeDelta: {x: 1342.78, y: 1342.78} m_Pivot: {x: 0, y: 1} --- !u!114 &1984669016 @@ -22508,6 +22502,10 @@ PrefabInstance: propertyPath: m_Name value: PrizesConfigurator objectReference: {fileID: 0} + - target: {fileID: 5423109734219761443, guid: dcef42dd0beb95f4e9b230192966f091, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -24323,7 +24321,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7725792043156676869, guid: 50b5075221b823240b287cd5e6c02d64, type: 3} propertyPath: m_fontSize - value: 0.55 + value: 0.5 objectReference: {fileID: 0} - target: {fileID: 8620231027088551242, guid: 50b5075221b823240b287cd5e6c02d64, type: 3} propertyPath: m_Name diff --git a/Assets/Scripts/Gameplay/Panels/PveLossPanel.cs b/Assets/Scripts/Gameplay/Panels/PveLossPanel.cs index d564e24..a8a848b 100644 --- a/Assets/Scripts/Gameplay/Panels/PveLossPanel.cs +++ b/Assets/Scripts/Gameplay/Panels/PveLossPanel.cs @@ -24,9 +24,7 @@ public class PveLossPanel : MonoBehaviour, IControlable public void UpdateControls() { - int direction = 0; - if (In.GetButtonDownAnyPlayer(PlayerAction.left)) direction -= 1; - if (In.GetButtonDownAnyPlayer(PlayerAction.right)) direction += 1; + int direction = In.GetAxis(JoystickSide.Both, InteractMode.Discrete).x; int newButtonIndex = Mathf.Clamp(buttonIndex + direction, 0, buttons.Count-1); bool indexChanged = newButtonIndex != buttonIndex; @@ -37,7 +35,7 @@ public class PveLossPanel : MonoBehaviour, IControlable } //interact - if(In.GetButtonDownAnyPlayer(PlayerAction.action)) + if(In.GetAction(JoystickSide.Both, InteractMode.Discrete)) { var selectedButton = buttons[buttonIndex]; selectedButton.Interact(); diff --git a/Assets/Scripts/Gameplay/Panels/PveWinPanel.cs b/Assets/Scripts/Gameplay/Panels/PveWinPanel.cs index d5e3f62..3f5b67b 100644 --- a/Assets/Scripts/Gameplay/Panels/PveWinPanel.cs +++ b/Assets/Scripts/Gameplay/Panels/PveWinPanel.cs @@ -117,7 +117,7 @@ public class PveWinPanel : MonoBehaviour, IControlable { if(ControlsEnabled == false) return; - if(In.GetButtonDownAnyPlayer(PlayerAction.action)) + if(In.GetAction(JoystickSide.Both, InteractMode.Discrete)) { print("Кнопка нажата"); Close(); diff --git a/Assets/Scripts/Gameplay/Panels/PvpWinPanel.cs b/Assets/Scripts/Gameplay/Panels/PvpWinPanel.cs index a2eb15a..ca89d7d 100644 --- a/Assets/Scripts/Gameplay/Panels/PvpWinPanel.cs +++ b/Assets/Scripts/Gameplay/Panels/PvpWinPanel.cs @@ -27,9 +27,7 @@ public class PvpWinPanel : MonoBehaviour, IControlable public void UpdateControls() { - int direction = 0; - if (In.GetButtonDownAnyPlayer(PlayerAction.left)) direction -= 1; - if (In.GetButtonDownAnyPlayer(PlayerAction.right)) direction += 1; + int direction = In.GetAxis(JoystickSide.Both, InteractMode.Discrete).x; int newButtonIndex = Mathf.Clamp(buttonIndex + direction, 0, buttons.Count); bool indexChanged = newButtonIndex != buttonIndex; @@ -40,7 +38,7 @@ public class PvpWinPanel : MonoBehaviour, IControlable } //interact - if (In.GetButtonDownAnyPlayer(PlayerAction.action)) + if (In.GetAction(JoystickSide.Both, InteractMode.Discrete)) { var selectedButton = buttons[buttonIndex]; selectedButton.Interact(); diff --git a/Assets/Scripts/Gameplay/Player.cs b/Assets/Scripts/Gameplay/Player.cs index fc3482d..1c03c6e 100644 --- a/Assets/Scripts/Gameplay/Player.cs +++ b/Assets/Scripts/Gameplay/Player.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using UnityEngine; public class Player : BasePlayer, IGamePlayer @@ -9,11 +8,6 @@ public class Player : BasePlayer, IGamePlayer [SerializeField] private float prepareSpeed; [SerializeField] private float moveSpeed; - [Header("Input")] - [SerializeField] private List leftButtons; - [SerializeField] private List rightButtons; - [SerializeField] private List actionButtons; - // State private PlayerState state = PlayerState.Sleep; private Chip currentChip; @@ -183,17 +177,17 @@ public class Player : BasePlayer, IGamePlayer private int GetHorizontalInput() { - int direction = 0; - if (In.GetButtonDown(leftButtons)) direction -= 1; - if (In.GetButtonDown(rightButtons)) direction += 1; - return direction; + return In.GetAxis(GetJoystickSide(), InteractMode.Discrete).x; } private bool IsActionPressed() { - return In.GetButtonDown(actionButtons); + return In.GetAction(GetJoystickSide(), InteractMode.Discrete); } + private JoystickSide GetJoystickSide() + => team == Team.Player1 ? JoystickSide.Left : JoystickSide.Right; + private void SetState(PlayerState newState) { state = newState; @@ -213,4 +207,4 @@ public class Player : BasePlayer, IGamePlayer } #endregion -} \ No newline at end of file +} diff --git a/Assets/Scripts/Input/COMinput.cs b/Assets/Scripts/Input/COMinput.cs index ff392b2..0dd4d1d 100644 --- a/Assets/Scripts/Input/COMinput.cs +++ b/Assets/Scripts/Input/COMinput.cs @@ -72,7 +72,7 @@ public class COMinput : InputSource pinMappings[InSignal.action2] = 9; pinMappings[InSignal.startOnePlayer] = 10; pinMappings[InSignal.startTwoPlayers] = 11; - pinMappings[InSignal.secret] = 12; + pinMappings[InSignal.service] = 12; pinMappings[InSignal.extra] = 13; pinMappings[InSignal.hasPrize] = 14; pinMappings[InSignal.prizeGiven] = 15; @@ -97,7 +97,7 @@ public class COMinput : InputSource pinMappings[InSignal.action2] = 11; pinMappings[InSignal.startOnePlayer] = 5; pinMappings[InSignal.startTwoPlayers] = 6; - pinMappings[InSignal.secret] = 12; + pinMappings[InSignal.service] = 12; pinMappings[InSignal.extra] = 13; pinMappings[InSignal.hasPrize] = 14; pinMappings[InSignal.prizeGiven] = 15; @@ -205,7 +205,7 @@ public class COMinput : InputSource public override bool GetButtonUp(int pinIndex) => ConsumeButtonEvent(buttonUp, pinIndex); // ------------------------------------------------------------------------------------ //ЭТА ГРУППА МЕТОДОВ ПОЗВОЛЯЕТ УЗНАТЬ СОСТОЯНИЯ КНОПОК АКТИВНОГО ИГРОКА (проверка по enum PlayerAction) - //Служебные кнопки типа startOnePlayer, startTwoPlayers, secret, extra, hasPrize, prizeGiven здесь не проверяются + //Служебные кнопки типа startOnePlayer, startTwoPlayers, service, extra, hasPrize, prizeGiven здесь не проверяются /// /// Получает состояние действия для текущего игрока. @@ -236,7 +236,7 @@ public class COMinput : InputSource // ------------------------------------------------------------------------------------ //ЭТА ГРУППА МЕТОДОВ ПОЗВОЛЯЕТ УЗНАТЬ СОСТОЯНИЯ КНОПОК ЛЮБОГО ИГРОКА (проверка по enum PlayerAction) - //Служебные кнопки типа startOnePlayer, startTwoPlayers, secret, extra, hasPrize, prizeGiven здесь не проверяются + //Служебные кнопки типа startOnePlayer, startTwoPlayers, service, extra, hasPrize, prizeGiven здесь не проверяются /// /// Получает состояние действия для любого из игроков. @@ -385,4 +385,4 @@ public class COMinput : InputSource return false; } -} \ No newline at end of file +} diff --git a/Assets/Scripts/Input/In.cs b/Assets/Scripts/Input/In.cs index 6244990..fef0101 100644 --- a/Assets/Scripts/Input/In.cs +++ b/Assets/Scripts/Input/In.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using UnityEngine; public class In : MonoBehaviour @@ -20,78 +19,44 @@ public class In : MonoBehaviour if (!success) Debug.LogWarning("Не удалось проинициалзировать источник управления."); } - public static int GetAxis(Axis axis, JoystickSide side, InteractMode interactMode = InteractMode.Discrete) + /// Возвращает горизонтальную и вертикальную оси выбранного джойстика. + public static Vector2Int GetAxis(JoystickSide side, InteractMode interactMode = InteractMode.Discrete) { - if (axis == Axis.Horizontal) return GetHorizontalAxis(side, interactMode); - else if (axis == Axis.Vertical) return GetVerticalAxis(side, interactMode); - else return 0; - } - - private static int GetHorizontalAxis(JoystickSide side, InteractMode interactMode) - { - Func func = interactMode == InteractMode.Discrete ? GetButtonDown : GetButton; - - int dir = 0; - if (side == JoystickSide.Both) { - if (func(InSignal.left1) || func(InSignal.left2)) dir -= 1; - if (func(InSignal.right1) || func(InSignal.right2)) dir += 1; - return dir; + int horizontal = ToAxis( + IsActive(InSignal.left1, interactMode) || IsActive(InSignal.left2, interactMode), + IsActive(InSignal.right1, interactMode) || IsActive(InSignal.right2, interactMode)); + int vertical = ToAxis( + IsActive(InSignal.down1, interactMode) || IsActive(InSignal.down2, interactMode), + IsActive(InSignal.up1, interactMode) || IsActive(InSignal.up2, interactMode)); + + return new Vector2Int(horizontal, vertical); } - else - { - InSignal left = side switch - { - JoystickSide.Left => InSignal.left1, - JoystickSide.Right => InSignal.left2, - }; - InSignal right = side switch - { - JoystickSide.Left => InSignal.right1, - JoystickSide.Right => InSignal.right2, - }; + bool isLeft = side == JoystickSide.Left; + InSignal left = isLeft ? InSignal.left1 : InSignal.left2; + InSignal right = isLeft ? InSignal.right1 : InSignal.right2; + InSignal down = isLeft ? InSignal.down1 : InSignal.down2; + InSignal up = isLeft ? InSignal.up1 : InSignal.up2; - if (func(left)) dir -= 1; - if (func(right)) dir += 1; - - return dir; - } + return new Vector2Int( + ToAxis(IsActive(left, interactMode), IsActive(right, interactMode)), + ToAxis(IsActive(down, interactMode), IsActive(up, interactMode))); } - private static int GetVerticalAxis(JoystickSide side, InteractMode interactMode) + /// Возвращает состояние кнопки Action выбранного джойстика. + public static bool GetAction(JoystickSide side, InteractMode interactMode = InteractMode.Discrete) { - Func func = interactMode == InteractMode.Discrete ? GetButtonDown : GetButton; - int dir = 0; - if (side == JoystickSide.Both) - { - if (func(InSignal.down1) || func(InSignal.down2)) dir -= 1; - if (func(InSignal.up1) || func(InSignal.up2)) dir += 1; - return dir; - } - else - { - InSignal downSignal = side switch - { - JoystickSide.Left => InSignal.down1, - JoystickSide.Right => InSignal.down2, - }; + return IsActive(InSignal.action1, interactMode) || IsActive(InSignal.action2, interactMode); - InSignal upSignal = side switch - { - JoystickSide.Left => InSignal.up1, - JoystickSide.Right => InSignal.up2, - }; - - if (func(downSignal)) dir -= 1; - if (func(upSignal)) dir += 1; - - return dir; - } + InSignal action = side == JoystickSide.Left ? InSignal.action1 : InSignal.action2; + return IsActive(action, interactMode); } + /// Возвращает текущее состояние сервисной кнопки без обработки Up/Down. + public static bool GetService() => GetButton(InSignal.service); public static bool GetButton(InSignal button) => source.GetButton(button); @@ -107,27 +72,13 @@ public class In : MonoBehaviour return false; } - public static bool GetButtonUp(InSignal button) => source.GetButtonUp(button); - - public static bool GetButton(int pinindex) => source.GetButton(pinindex); - - public static bool GetButtonDown(int pinindex) => source.GetButtonDown(pinindex); - - public static bool GetButtonUp(int pinindex) => source.GetButtonUp(pinindex); - - public static bool GetButtonAnyPlayer(PlayerAction button) => source.GetButtonAnyPlayer(button); - - public static bool GetButtonDownAnyPlayer(PlayerAction button) => source.GetButtonDownAnyPlayer(button); - - public static bool GetButtonUpAnyPlayer(PlayerAction button) => source.GetButtonUpAnyPlayer(button); - - public static bool GetButtonCurrentPlayer(PlayerAction button) => source.GetButtonCurrentPlayer(button); - - public static bool GetButtonDownCurrentPlayer(PlayerAction button) => source.GetButtonDownCurrentPlayer(button); - - public static bool GetButtonUpCurrentPlayer(PlayerAction button) => source.GetButtonUpCurrentPlayer(button); - public static bool AnyButton() => source.AnyButton(); + + private static bool IsActive(InSignal signal, InteractMode interactMode) + => interactMode == InteractMode.Discrete ? GetButtonDown(signal) : GetButton(signal); + + private static int ToAxis(bool negative, bool positive) + => (positive ? 1 : 0) - (negative ? 1 : 0); } public enum Axis diff --git a/Assets/Scripts/Input/InSignal.cs b/Assets/Scripts/Input/InSignal.cs index abbf1d5..5f90893 100644 --- a/Assets/Scripts/Input/InSignal.cs +++ b/Assets/Scripts/Input/InSignal.cs @@ -30,8 +30,8 @@ public enum InSignal startOnePlayer = 10, /// Запуск игры для двух игроков startTwoPlayers = 11, - /// Секретная/служебная кнопка для захода в настройки - secret = 12, + /// Служебная кнопка для входа в сервисное меню + service = 12, /// Дополнительная/резервная кнопка extra = 13, diff --git a/Assets/Scripts/Input/KeyboardInput.cs b/Assets/Scripts/Input/KeyboardInput.cs index 9dd0d90..4734546 100644 --- a/Assets/Scripts/Input/KeyboardInput.cs +++ b/Assets/Scripts/Input/KeyboardInput.cs @@ -128,7 +128,7 @@ public class KeyboardInput : InputSource InSignal.startOnePlayer => KeyCode.Alpha1, InSignal.startTwoPlayers => KeyCode.Alpha2, - InSignal.secret => KeyCode.F5, + InSignal.service => KeyCode.F5, InSignal.extra => KeyCode.Alpha3, @@ -162,7 +162,7 @@ public class KeyboardInput : InputSource 10 => KeyCode.Alpha1, // startOnePlayer 11 => KeyCode.Alpha2, // startTwoPlayers - 12 => KeyCode.F5, // secret + 12 => KeyCode.F5, // service 13 => KeyCode.Alpha3, // extra @@ -177,4 +177,4 @@ public class KeyboardInput : InputSource { return Input.anyKey; } -} \ No newline at end of file +} diff --git a/Assets/Scripts/PrizeSystem/Configuration/CharacterSelectionPanel.cs b/Assets/Scripts/PrizeSystem/Configuration/CharacterSelectionPanel.cs index f8754ea..9fc544f 100644 --- a/Assets/Scripts/PrizeSystem/Configuration/CharacterSelectionPanel.cs +++ b/Assets/Scripts/PrizeSystem/Configuration/CharacterSelectionPanel.cs @@ -97,13 +97,11 @@ public class CharacterSelectionPanel : MonoBehaviour, IControlable public void UpdateControls() { - int dir_h = In.GetAxis(Axis.Horizontal, JoystickSide.Both); - SwitchCharacter(dir_h); + Vector2Int axes = In.GetAxis(JoystickSide.Both, InteractMode.Discrete); + SwitchCharacter(axes.x); + SwitchButton(-axes.y); - int dir_v = -In.GetAxis(Axis.Vertical, JoystickSide.Both); - SwitchButton(dir_v); - - SelectedButton.TakeInput(In.GetButtonAnyPlayer(PlayerAction.action)); + SelectedButton.TakeInput(In.GetAction(JoystickSide.Both, InteractMode.Continious)); } private void ClearTable() @@ -123,4 +121,4 @@ public class CharacterSelectionPanel : MonoBehaviour, IControlable view.SetPrize(item); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/PrizeSystem/Configuration/CountablePrizeConfigurator.cs b/Assets/Scripts/PrizeSystem/Configuration/CountablePrizeConfigurator.cs index eb2dd11..8fb6377 100644 --- a/Assets/Scripts/PrizeSystem/Configuration/CountablePrizeConfigurator.cs +++ b/Assets/Scripts/PrizeSystem/Configuration/CountablePrizeConfigurator.cs @@ -23,12 +23,12 @@ public class CountablePrizeConfigurator : BasePrizeConfigurator, IControlable public override void UpdateControls() { - numberInput.SetDirection(In.GetAxis(Axis.Horizontal, JoystickSide.Both, InteractMode.Continious)); + numberInput.SetDirection(In.GetAxis(JoystickSide.Both, InteractMode.Continious).x); - if (In.GetButtonAnyPlayer(PlayerAction.action)) + if (In.GetAction(JoystickSide.Both, InteractMode.Continious)) { Prize prize = PrizeUtils.CreatePrize(CountablePrizeType.Hopper, numberInput.Value); Complete(prize); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/PrizeSystem/Configuration/QrPrizeConfigurator.cs b/Assets/Scripts/PrizeSystem/Configuration/QrPrizeConfigurator.cs index 3c83de6..2364677 100644 --- a/Assets/Scripts/PrizeSystem/Configuration/QrPrizeConfigurator.cs +++ b/Assets/Scripts/PrizeSystem/Configuration/QrPrizeConfigurator.cs @@ -17,7 +17,7 @@ public class QrPrizeConfigurator : BasePrizeConfigurator, IControlable { textInput.UpdateControls(); - if (In.GetButtonDownAnyPlayer(PlayerAction.action)) + if (In.GetAction(JoystickSide.Both, InteractMode.Discrete)) { Prize prize = PrizeUtils.CreatePrize(textInput.CollectText()); Complete(prize); diff --git a/Assets/Scripts/PrizeSystem/Configuration/VitrinaPrizeConfigurator.cs b/Assets/Scripts/PrizeSystem/Configuration/VitrinaPrizeConfigurator.cs index f8fd8e2..29f8674 100644 --- a/Assets/Scripts/PrizeSystem/Configuration/VitrinaPrizeConfigurator.cs +++ b/Assets/Scripts/PrizeSystem/Configuration/VitrinaPrizeConfigurator.cs @@ -31,17 +31,17 @@ public class VitrinaPrizeConfigurator : BasePrizeConfigurator, IControlable public override void UpdateControls() { - var dir = In.GetAxis(Axis.Vertical, JoystickSide.Both); - index = Mathf.Clamp(index + dir, 0, toggles.Count - 1); + Vector2Int axes = In.GetAxis(JoystickSide.Both, InteractMode.Discrete); + index = Mathf.Clamp(index + axes.y, 0, toggles.Count - 1); UpdPointerPos(); - var toggleDir = In.GetAxis(Axis.Horizontal, JoystickSide.Both); + int toggleDir = axes.x; if (toggleDir != 0) { toggles[index].SetValue(toggleDir > 0); } - if (In.GetButtonDownAnyPlayer(PlayerAction.action)) + if (In.GetAction(JoystickSide.Both, InteractMode.Discrete)) { List boxes = new(); @@ -58,4 +58,4 @@ public class VitrinaPrizeConfigurator : BasePrizeConfigurator, IControlable Complete(prize); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/PrizeSystem/QrPanel.cs b/Assets/Scripts/PrizeSystem/QrPanel.cs index 99d1de1..01816bf 100644 --- a/Assets/Scripts/PrizeSystem/QrPanel.cs +++ b/Assets/Scripts/PrizeSystem/QrPanel.cs @@ -85,7 +85,7 @@ public class QrPanel : MonoBehaviour bool CollectInputs() { - bool action = In.GetButtonAnyPlayer(PlayerAction.left); + bool action = In.GetAction(JoystickSide.Both, InteractMode.Continious); return action; } diff --git a/Assets/Scripts/PrizeSystem/UI/PrizesSelector.cs b/Assets/Scripts/PrizeSystem/UI/PrizesSelector.cs index 920f83e..4d7e0c7 100644 --- a/Assets/Scripts/PrizeSystem/UI/PrizesSelector.cs +++ b/Assets/Scripts/PrizeSystem/UI/PrizesSelector.cs @@ -47,12 +47,12 @@ public class PrizesSelector : MonoBehaviour if (_availablePrizesTable.prizeButtons == null) return; if (_availablePrizesTable.prizeButtons.Count == 0) return; - index = index - In.GetAxis(Axis.Vertical, JoystickSide.Both); + index -= In.GetAxis(JoystickSide.Both, InteractMode.Discrete).y; index = Mathf.Clamp(index, 0, _availablePrizesTable.prizeButtons.Count); pointer.position = _availablePrizesTable.prizeButtons[index].transform.position; - if (In.GetButtonAnyPlayer(PlayerAction.action)) + if (In.GetAction(JoystickSide.Both, InteractMode.Continious)) { _availablePrizesTable.prizeButtons[index].ClickAnimation(); } @@ -75,4 +75,4 @@ public class PrizesSelector : MonoBehaviour view.SetPrize(item); } } -} \ No newline at end of file +} diff --git a/Assets/Scripts/PrizeSystem/Vitrina/VitrinaPanel.cs b/Assets/Scripts/PrizeSystem/Vitrina/VitrinaPanel.cs index 5da71f3..2ad77df 100644 --- a/Assets/Scripts/PrizeSystem/Vitrina/VitrinaPanel.cs +++ b/Assets/Scripts/PrizeSystem/Vitrina/VitrinaPanel.cs @@ -147,9 +147,8 @@ public class VitrinaPanel : MonoBehaviour (int direction, bool action) CollectInputs() { - int direction = (In.GetButtonDownAnyPlayer(PlayerAction.right) ? 1 : 0) - - (In.GetButtonDownAnyPlayer(PlayerAction.left) ? 1 : 0); - bool action = In.GetButtonAnyPlayer(PlayerAction.down); + int direction = In.GetAxis(JoystickSide.Both, InteractMode.Discrete).x; + bool action = In.GetAction(JoystickSide.Both, InteractMode.Continious); return (direction, action); } diff --git a/Assets/Scripts/Settings/SettingsScreen.cs b/Assets/Scripts/Settings/SettingsScreen.cs index 420bdbc..c5e7635 100644 --- a/Assets/Scripts/Settings/SettingsScreen.cs +++ b/Assets/Scripts/Settings/SettingsScreen.cs @@ -45,26 +45,31 @@ public class SettingsScreen : MonoBehaviour, IControlable public void UpdateControls() { - if(controlsBlocked && In.GetButtonAnyPlayer(PlayerAction.action) == false) + if(controlsBlocked && In.GetAction(JoystickSide.Both, InteractMode.Continious) == false) controlsBlocked = false; if (controlsBlocked) return; - int switchDirection = -In.GetAxis(switchAxis, JoystickSide.Both); + Vector2Int switchAxes = In.GetAxis(JoystickSide.Both, InteractMode.Discrete); + int switchDirection = -GetAxisValue(switchAxes, switchAxis); if (switchDirection != 0) SwitchSetting(switchDirection); - int interactDirection = In.GetAxis(interactAxis, JoystickSide.Both, InteractMode.Continious); - bool action = In.GetButtonAnyPlayer(PlayerAction.action); + Vector2Int interactAxes = In.GetAxis(JoystickSide.Both, InteractMode.Continious); + int interactDirection = GetAxisValue(interactAxes, interactAxis); + bool action = In.GetAction(JoystickSide.Both, InteractMode.Continious); SelectedSetting.TakeInput(interactDirection, action); - if(_exitTimer.Update(In.GetButton(InSignal.secret))) + if(_exitTimer.Update(In.GetService())) { _menuSettingsTransit.GotoMenu(); } } + + private static int GetAxisValue(Vector2Int axes, Axis axis) + => axis == Axis.Horizontal ? axes.x : axes.y; public void Generate() { @@ -146,4 +151,4 @@ public class SettingsScreen : MonoBehaviour, IControlable scrollRect.verticalNormalizedPosition = newPosition; } -} \ No newline at end of file +} diff --git a/Assets/Scripts/Settings/TextInput.cs b/Assets/Scripts/Settings/TextInput.cs index 1dbbc8e..7fa9235 100644 --- a/Assets/Scripts/Settings/TextInput.cs +++ b/Assets/Scripts/Settings/TextInput.cs @@ -41,16 +41,16 @@ public class TextInput : MonoBehaviour, IControlable public void UpdateControls() { - int dir_h = In.GetAxis(Axis.Horizontal, JoystickSide.Both, InteractMode.Discrete); + int dir_h = In.GetAxis(JoystickSide.Both, InteractMode.Discrete).x; SwitchSlot(dir_h); - int dir_v = In.GetAxis(Axis.Vertical, JoystickSide.Both, InteractMode.Continious); + int dir_v = In.GetAxis(JoystickSide.Both, InteractMode.Continious).y; SwitchLetter(dir_v); - if(In.GetButtonAnyPlayer(PlayerAction.action) == false) + if(In.GetAction(JoystickSide.Both, InteractMode.Continious) == false) completeUnpressed = true; - completionRequested = In.GetButtonAnyPlayer(PlayerAction.action); + completionRequested = In.GetAction(JoystickSide.Both, InteractMode.Continious); if (completionRequested && completeUnpressed) Complete(); } @@ -150,4 +150,4 @@ public class TextInput : MonoBehaviour, IControlable sb.Append(slot.Symbol); return sb.ToString().Trim(); } -} \ No newline at end of file +} diff --git a/Assets/Scripts/UI/Menu/Menu.cs b/Assets/Scripts/UI/Menu/Menu.cs index 6bffb08..51a56d8 100644 --- a/Assets/Scripts/UI/Menu/Menu.cs +++ b/Assets/Scripts/UI/Menu/Menu.cs @@ -21,7 +21,7 @@ public class Menu : MonoBehaviour, IControlable return; //переход настройки - if (_settingsTimer.Update(In.GetButton(InSignal.secret))) + if (_settingsTimer.Update(In.GetService())) { _menuSettingsTransit.GotoSettings(); return; @@ -48,10 +48,10 @@ public class Menu : MonoBehaviour, IControlable public void UpdateControls() { - int direction_horizontal = In.GetAxis(Axis.Horizontal, JoystickSide.Both); + int direction_horizontal = In.GetAxis(JoystickSide.Both, InteractMode.Discrete).x; menuPanelManager.SwitchPanel(direction_horizontal); - bool action = In.GetButtonDownAnyPlayer(PlayerAction.action); + bool action = In.GetAction(JoystickSide.Both, InteractMode.Discrete); if (action) menuPanelManager.InteractCurrent(); } @@ -80,4 +80,4 @@ public class Menu : MonoBehaviour, IControlable _promoTimer.Reset(); _settingsTimer.Reset(); } -} \ No newline at end of file +} diff --git a/Assets/Scripts/UI/Menu/Panels/MenuPanelsScroll.cs b/Assets/Scripts/UI/Menu/Panels/MenuPanelsScroll.cs index 2c6fb62..920d789 100644 --- a/Assets/Scripts/UI/Menu/Panels/MenuPanelsScroll.cs +++ b/Assets/Scripts/UI/Menu/Panels/MenuPanelsScroll.cs @@ -52,7 +52,7 @@ public class MenuPanelsScroll : MenuPanel { if (!m_enabled || isTransitioning) return; - int dir_v = -In.GetAxis(Axis.Vertical, JoystickSide.Both); + int dir_v = -In.GetAxis(JoystickSide.Both, InteractMode.Discrete).y; if (dir_v != 0) StartCoroutine(SwitchPanelCoroutine(dir_v)); } @@ -102,4 +102,4 @@ public class MenuPanelsScroll : MenuPanel } public override void Interact() => currentPanel.Interact(); -} \ No newline at end of file +} diff --git a/Assets/Scripts/Vitrina/VitrinaCatcher.cs b/Assets/Scripts/Vitrina/VitrinaCatcher.cs index ea9dce8..7dc0fd7 100644 --- a/Assets/Scripts/Vitrina/VitrinaCatcher.cs +++ b/Assets/Scripts/Vitrina/VitrinaCatcher.cs @@ -33,7 +33,7 @@ public class VitrinaCatcher : MonoBehaviour private void Update() { - if (animating && In.GetButtonDownAnyPlayer(PlayerAction.right)) + if (animating && In.GetAxis(JoystickSide.Both, InteractMode.Discrete).x > 0) { StopAllCoroutines(); Hide();