Files
bansonic_beta_main/Assets/scripts/UI/Panel/UI_Panel_Note.cs
T
FloatGaming 98510eef0f 收拾烂摊子
增加编队初步,改动了判定系统,编队UI组装好
2025-09-28 00:23:05 +08:00

240 lines
8.6 KiB
C#

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<UI_Button_Character>(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<Sprite>(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;
}
}