From 766cdff5ffa72b65d7f106658d1603f47739b2ba Mon Sep 17 00:00:00 2001 From: chai <215380520@qq.com> Date: Fri, 27 Oct 2023 11:05:14 +0800 Subject: + init --- GameCode/ControllerImageToggler.cs | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 GameCode/ControllerImageToggler.cs (limited to 'GameCode/ControllerImageToggler.cs') diff --git a/GameCode/ControllerImageToggler.cs b/GameCode/ControllerImageToggler.cs new file mode 100644 index 0000000..22463f4 --- /dev/null +++ b/GameCode/ControllerImageToggler.cs @@ -0,0 +1,71 @@ +using System; +using UnityEngine; +using UnityEngine.UI; + +public class ControllerImageToggler : MonoBehaviour +{ + public Sprite MKSprite; + + public Sprite controllerSprite; + + private Image img; + + private CharacterCreatorPortrait portrait; + + private CharacterSelectionInstance selector; + + private void Awake() + { + selector = GetComponentInParent(); + portrait = GetComponentInParent(); + if ((bool)portrait && portrait.controlType != MenuControllerHandler.MenuControl.Unassigned) + { + Switch(portrait.controlType); + } + } + + private void Start() + { + img = GetComponent(); + MenuControllerHandler instance = MenuControllerHandler.instance; + instance.switchControlAction = (Action)Delegate.Combine(instance.switchControlAction, new Action(Switch)); + if (!selector && portrait.controlType == MenuControllerHandler.MenuControl.Unassigned) + { + Switch(MenuControllerHandler.menuControl); + } + } + + private void Update() + { + if ((bool)selector && (bool)selector.currentPlayer) + { + if (selector.currentPlayer.data.input.inputType == GeneralInput.InputType.Controller) + { + img.sprite = controllerSprite; + } + else + { + img.sprite = MKSprite; + } + } + } + + private void Switch(MenuControllerHandler.MenuControl control) + { + if (!img) + { + img = GetComponent(); + } + if (!selector) + { + if (control == MenuControllerHandler.MenuControl.Controller) + { + img.sprite = controllerSprite; + } + else + { + img.sprite = MKSprite; + } + } + } +} -- cgit v1.1-26-g67d0