using System; using System.Collections; //using Mono.Cecil.Cil; using TMPro; using UnityEngine; using UnityEngine.UI; public class UI_Panel_Note : MonoBehaviour { [SerializeField] Button button_Close; [SerializeField] float anim_Time = 0.5f; [SerializeField] Button button_Character; [SerializeField] Button button_Enemy; [SerializeField] Button button_TERMINOLOGY; [SerializeField] Button button_AGENDA; [SerializeField] Button button_ORGANIZATIONS; [SerializeField] Button button_TERRITORIAL; [SerializeField] TMP_Text text_Select_Title; [SerializeField] Transform transform_Select; [SerializeField] ToggleGroup toggleGroup_Select; [SerializeField] Animator Animator_Select_Content; [SerializeField] UI_Button_Character button_Select_Prefab; [SerializeField] TMP_Text text_Character_Title; [SerializeField] Transform transform_Description_Content; [SerializeField] TMP_Text text_Only; [SerializeField] TMP_Text text_Character_Name; [SerializeField] Scrollbar scrollbar_Character_Description; [SerializeField] Image image_Character_Illustration; [SerializeField] TMP_Text text_Character_RealName; [SerializeField] TMP_Text text_Character_StageName; [SerializeField] TMP_Text text_Character_Gender; [SerializeField] TMP_Text text_Character_Age; [SerializeField] TMP_Text text_Character_Height; [SerializeField] TMP_Text text_Character_Weight; [SerializeField] TMP_Text text_Character_Birthday; [SerializeField] TMP_Text text_Character_Data; [SerializeField] TMP_Text text_Character_Description; private void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { gameObject.SetActive(false); } } private void Awake() { button_Close?.onClick.AddListener(Close); } void Close() { gameObject.SetActive(false); } private void Start() { Set_Button_Image(button_Character); button_Character.onClick.AddListener (() => { Set_Select_Content(E_Character_Type.Character.ToString()); Set_Button_Image_Select(button_Character); }); Set_Button_Image(button_Enemy); button_Enemy.onClick.AddListener (() => { Set_Select_Content(E_Character_Type.Enemy.ToString()); Set_Button_Image_Select(button_Enemy); }); Set_Button_Image(button_TERMINOLOGY); button_TERMINOLOGY.onClick.AddListener (() => { Set_Select_Content(E_Character_Type.TERMINOLOGY.ToString()); Set_Button_Image_Select(button_TERMINOLOGY); }); Set_Button_Image(button_AGENDA); button_AGENDA.onClick.AddListener (() => { Set_Select_Content(E_Character_Type.AGENDA.ToString()); Set_Button_Image_Select(button_AGENDA); }); Set_Button_Image(button_ORGANIZATIONS); button_ORGANIZATIONS.onClick.AddListener (() => { Set_Select_Content(E_Character_Type.ORGANIZATIONS.ToString()); Set_Button_Image_Select(button_ORGANIZATIONS); }); Set_Button_Image(button_TERRITORIAL); button_TERRITORIAL.onClick.AddListener (() => { Set_Select_Content(E_Character_Type.TERRITORIAL.ToString()); Set_Button_Image_Select(button_TERRITORIAL); }); button_Character.onClick.Invoke(); } public void Set_Button_Image(Button btn) { btn.spriteState = new() { highlightedSprite = btn.spriteState.highlightedSprite, selectedSprite = btn.spriteState.selectedSprite, disabledSprite = btn.image.sprite, }; } public void Set_Button_Image_Select(Button btn) { if (btn.TryGetComponent(out Image image)) { image.sprite = btn.spriteState.selectedSprite; } ; } public void Clear_Select_Content() { button_Character.image.sprite = button_Character.spriteState.disabledSprite; button_Enemy.image.sprite = button_Enemy.spriteState.disabledSprite; button_TERMINOLOGY.image.sprite = button_TERMINOLOGY.spriteState.disabledSprite; button_AGENDA.image.sprite = button_AGENDA.spriteState.disabledSprite; button_ORGANIZATIONS.image.sprite = button_ORGANIZATIONS.spriteState.disabledSprite; button_TERRITORIAL.image.sprite = button_TERRITORIAL.spriteState.disabledSprite; toggleGroup_Select.transform.Get_Childrens_Component(true, true); if (c_Clear_Select_Content != null) { StopCoroutine(c_Clear_Select_Content); } c_Clear_Select_Content = StartCoroutine(C_Clear_Select_Content()); } Coroutine c_Clear_Select_Content; IEnumerator C_Clear_Select_Content() { Animator_Select_Content.Play("Hide"); Animator_Select_Content.speed = 1 / anim_Time; if (Animator_Select_Content.gameObject.activeSelf == true) { yield return new WaitForSeconds(anim_Time); transform_Select.gameObject.SetActive(false); } transform_Select.gameObject.SetActive(true); } public void Set_Select_Content(string type) { Clear_Select_Content(); if (c_Set_Select_Content != null) { StopCoroutine(c_Set_Select_Content); } c_Set_Select_Content = StartCoroutine(C_Set_Select_Content(type)); } Coroutine c_Set_Select_Content; IEnumerator C_Set_Select_Content(string type) { Clear_Select_Content(); if (Animator_Select_Content.gameObject.activeSelf == true) { yield return new WaitForSeconds(anim_Time); } var data = CharacterDataManager.Singleton.data_Dic; var data_List = CharacterDataManager.Singleton.data_Dic[type]; var type_Index = (int)(E_Character_Type)Enum.Parse(typeof(E_Character_Type), type); if (data_List != null) { for (int i = 0; i < data_List.Count; i++) { Character_Data_SO item = data_List[i]; UI_Button_Character btn = null; btn = Add_Select_Button(item, type_Index >= 2); if (i == 0) { btn.Init(); } } text_Character_Title.text = type; } yield return null; } public UI_Button_Character Add_Select_Button(Character_Data_SO item, bool text_Only) { UI_Button_Character btn = Instantiate(button_Select_Prefab, toggleGroup_Select.transform); btn.so = item; btn.Toggle.group = toggleGroup_Select; btn.Text.text = item.data.realName; btn.gameObject.name = nameof(UI_Button_Character) + "_" + item.data.realName; btn.gameObject.SetActive(true); btn.transform.localScale = Vector3.one; if (text_Only) { btn.Toggle.onValueChanged.AddListener((isOn) => { if (isOn == true) { Set_Text_Only(btn.so); } }); } else { btn.Toggle.onValueChanged.AddListener((isOn) => { if (isOn == true) { Set_Character_Description(btn.so); } }); } return btn; } public void Set_Text_Only(Character_Data_SO item) { text_Only.gameObject.SetActive(true); transform_Description_Content.gameObject.SetActive(false); text_Only.text = item.data.personalityDescription; } public void Set_Character_Description(Character_Data_SO item) { text_Only.gameObject.SetActive(false); transform_Description_Content.gameObject.SetActive(true); var data = item; text_Character_Name.text = data.data.realName; image_Character_Illustration.sprite = Resources.Load(data.data.image_Name); text_Character_RealName.text = data.data.realName; text_Character_StageName.text = data.data.stageName; text_Character_Gender.text = data.data.stageName; text_Character_Age.text = data.data.age.ToString(); text_Character_Height.text = data.data.height.ToString(); text_Character_Weight.text = data.data.weight.ToString(); text_Character_Birthday.text = data.data.birthday; text_Character_Data.text = data.data.registrationDate; text_Character_Description.text = data.data.personalityDescription; scrollbar_Character_Description.value = 1; } }