thewar_client/Client/Assets/1_Script/GameUI/StoryPlayUiCtrl.cs

95 lines
2.5 KiB
C#

using System.Collections.Generic;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
public class StoryPlayUiCtrl : SingletonMonoBehaviour<StoryPlayUiCtrl>
{
List<ScriptData> scriptDatas = new List<ScriptData>();
int index;
[SerializeField] GameObject iUnit;
[SerializeField] TMP_Text iUnitNickname;
[SerializeField] Image iUnitImage;
[SerializeField] GameObject youUnit;
[SerializeField] TMP_Text youUnitNickname;
[SerializeField] Image youUnitImage;
[SerializeField] TMP_Text scriptText;
protected override void OnAwake()
{
//TODO game메니저를 확인해서 데이터가 있으면 true 없으면 바로 게임종료가 되도록 수정할것
if (GameManager.Instance.chapterData != null)
{
int chapter_id = GameManager.Instance.chapterData.index;
foreach (var item in Statics.excelDatas.scriptData)
{
if (item.Value.chapter_id == chapter_id)
{
scriptDatas.Add(item.Value);
}
}
index = 0;
}
else
{
gameObject.SetActive(false);
}
}
protected override void OnStart()
{
Script();
}
public void SelectNextButton()
{
if (scriptDatas.Count -1 == index)
{
GameManager.Instance.NextScene(GameManager.eScene.Game);
}
if (scriptDatas[index].buttle)
{
PlayCtrl.Instance.isStop = false;
gameObject.SetActive (false);
return;
}
index++;
Script();
}
public void EndButtle()
{
gameObject.SetActive(true);
index++;
Script();
}
private void Script()
{
iUnit.SetActive(scriptDatas[index].position);
youUnit.SetActive(!scriptDatas[index].position);
UnitCtrl unit;
if (scriptDatas[index].position)
{
unit = Statics.intUnits[scriptDatas[index].unit_id].GetComponent<UnitCtrl>();
iUnitNickname.text = unit.unit.name;
iUnitImage.sprite = Statics.stringIcons[unit.unit.name];
}
else
{
unit = Statics.intUnits[scriptDatas[index].unit_id].GetComponent<UnitCtrl>();
youUnitNickname.text = unit.unit.name;
youUnitImage.sprite = Statics.stringIcons[unit.unit.name];
}
scriptText.text = scriptDatas[index].text;
}
//TODO 천천히 텍스트가 1개씩 생성되게 만들기
}