148 lines
4.8 KiB
C#
148 lines
4.8 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using UnityEngine.UI;
|
|
|
|
public class UI_Panel_Main : Singleton_Mono<UI_Panel_Main>
|
|
{
|
|
public int Character_Index
|
|
{
|
|
set
|
|
{
|
|
character_Index = value;
|
|
Set_Character_Illustration(Get_Character_Image_Data(character_Index).Image_Full);
|
|
}
|
|
get => character_Index;
|
|
}
|
|
public int character_Index = 1;
|
|
[SerializeField] List<Character_Data_Image_SO> data_List;
|
|
public List<Character_Data_Image_SO> Data_List => data_List;
|
|
[SerializeField] Button button_Character_Set;
|
|
[SerializeField] GameObject ui_Panel_Character;
|
|
[SerializeField] Button button_Encyclopendia;
|
|
[SerializeField] GameObject ui_Panel_Encyclopendia;
|
|
[SerializeField] Image image_Character;
|
|
[SerializeField] Button button_Mail;
|
|
[SerializeField] GameObject ui_Panel_Mail;
|
|
[SerializeField] Button button_Notice;
|
|
[SerializeField] GameObject ui_Panel_Notice;
|
|
[SerializeField] Button button_Level;
|
|
[SerializeField] GameObject ui_Panel_Level;
|
|
[SerializeField] MusicPlayer music_Player;
|
|
[SerializeField] GameObject ui_Panel_Music;
|
|
[SerializeField] Button button_Story;
|
|
[SerializeField] GameObject ui_Panel_Story;
|
|
[SerializeField] Button button_Setting;
|
|
[SerializeField] GameObject ui_Panel_Setting;
|
|
|
|
[SerializeField] Button button_Idol;
|
|
[SerializeField] Button button_Select_Music;
|
|
[SerializeField] string ui_Select_Music_Scene_Name= "selectYourSongFirst";
|
|
|
|
protected override void In_Init()
|
|
{
|
|
|
|
}
|
|
protected override bool Is_Singleton_Auto()
|
|
{
|
|
return true;
|
|
}
|
|
protected override void OnDestroy()
|
|
{
|
|
foreach (var item in data_List)
|
|
{
|
|
Destroy(item);
|
|
}
|
|
base.OnDestroy();
|
|
}
|
|
private void Start()
|
|
{
|
|
data_List = Resources.LoadAll<Character_Data_Image_SO>("Data").ToList();
|
|
List<Character_Data_Image_SO> data_List_New = new();
|
|
foreach (var item in data_List)
|
|
{
|
|
var so = Instantiate(item);
|
|
data_List_New.Add(so);
|
|
}
|
|
data_List = data_List_New;
|
|
Character_Index = character_Index;
|
|
|
|
if (button_Character_Set != null)
|
|
button_Character_Set.onClick.AddListener(
|
|
() => ui_Panel_Character.SetActive(true));
|
|
if (button_Mail != null)
|
|
button_Mail.onClick.AddListener(
|
|
() => ui_Panel_Mail.SetActive(true));
|
|
if (button_Notice != null)
|
|
button_Notice.onClick.AddListener(
|
|
() => ui_Panel_Notice.SetActive(true));
|
|
if (button_Level != null)
|
|
button_Level.onClick.AddListener(
|
|
() => ui_Panel_Level.SetActive(true));
|
|
Character_Index = character_Index;
|
|
if (button_Encyclopendia != null)
|
|
button_Encyclopendia.onClick.AddListener(
|
|
() => ui_Panel_Encyclopendia.SetActive(true));
|
|
if (button_Story != null)
|
|
button_Story.onClick.AddListener(
|
|
() => ui_Panel_Story.SetActive(true));
|
|
if (music_Player != null && music_Player.Button_List != null)
|
|
music_Player.Button_List.onClick.AddListener(
|
|
() => ui_Panel_Music.SetActive(true));
|
|
if (button_Setting != null)
|
|
button_Setting.onClick.AddListener(
|
|
() => ui_Panel_Setting.SetActive(true));
|
|
|
|
|
|
if (button_Select_Music != null)
|
|
button_Select_Music.onClick.AddListener(
|
|
() => SceneManager.LoadScene(ui_Select_Music_Scene_Name,LoadSceneMode.Single));
|
|
}
|
|
public Character_Data_Image_SO Get_Character_Image_Data(int index)
|
|
{
|
|
return data_List.Find(i => i.index == index);
|
|
}
|
|
public Character_Data_Image_SO Get_Character_Image_Data()
|
|
{
|
|
return data_List.Find(i => i.index == character_Index);
|
|
}
|
|
public void Set_Character_Illustration(Sprite sprite)
|
|
{
|
|
|
|
if (c_Character_Illustration_Anim != null)
|
|
{
|
|
StopCoroutine(c_Character_Illustration_Anim);
|
|
}
|
|
if (image_Character.TryGetComponent(out CanvasGroup canvasGroup))
|
|
{
|
|
c_Character_Illustration_Anim = StartCoroutine(C_Character_Illustration_Anim(canvasGroup, () =>
|
|
{
|
|
image_Character.sprite = sprite;
|
|
image_Character.SetNativeSize();
|
|
}));
|
|
}
|
|
|
|
}
|
|
Coroutine c_Character_Illustration_Anim;
|
|
[SerializeField] float character_Illustration_Time = 0.5f;
|
|
IEnumerator C_Character_Illustration_Anim(CanvasGroup canvasGroup, Action onHide)
|
|
{
|
|
float a = 1f / character_Illustration_Time;
|
|
while (canvasGroup.alpha > 0)
|
|
{
|
|
canvasGroup.alpha -= a * Time.deltaTime;
|
|
yield return null;
|
|
}
|
|
onHide?.Invoke();
|
|
while (canvasGroup.alpha < 1)
|
|
{
|
|
canvasGroup.alpha += a * Time.deltaTime;
|
|
yield return null;
|
|
}
|
|
}
|
|
|
|
}
|