using UnityEngine; namespace JohnsonUtils.Utilities.Icons { [CreateAssetMenu(fileName = "GamepadIcons_", menuName = "AssetPack/GamePad Icons", order = 0)] public class GamepadIcons : ScriptableObject { public Sprite ButtonEast; public Sprite ButtonNorth; public Sprite ButtonSouth; public Sprite ButtonWest; public Sprite Dpad; public Sprite DpadUp; public Sprite DpadDown; public Sprite DpadLeft; public Sprite DpadRight; public Sprite LeftShoulder; public Sprite LeftStick; public Sprite LeftTrigger; public Sprite RightShoulder; public Sprite RightStick; public Sprite RightTrigger; public Sprite SelectButton; public Sprite StartButton; public Sprite LeftStickPress; public Sprite RightStickPress; public Sprite GetSprite(string controlPath) { // From the input system, we get the path of the control on device. So we can just // map from that to the sprites we have for gamepads. return controlPath switch { "buttonSouth" => ButtonSouth, "buttonNorth" => ButtonNorth, "buttonEast" => ButtonEast, "buttonWest" => ButtonWest, "start" => StartButton, "select" => SelectButton, "leftTrigger" => LeftTrigger, "rightTrigger" => RightTrigger, "leftShoulder" => LeftShoulder, "rightShoulder" => RightShoulder, "dpad" => Dpad, "dpad/up" => DpadUp, "dpad/down" => DpadDown, "dpad/left" => DpadLeft, "dpad/right" => DpadRight, "leftStick" => LeftStick, "rightStick" => RightStick, "leftStickPress" => LeftStickPress, "rightStickPress" => RightStickPress, _ => null }; } } }