93 lines
2.9 KiB
C#
93 lines
2.9 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class GameLogic : MonoBehaviour
|
|
{
|
|
[SerializeField] Transform mCtnStage;
|
|
|
|
private Film mFilm;
|
|
private int[] mSoundOrder;
|
|
private string mEndingStr;
|
|
private int mCurIndex;
|
|
|
|
private void Start()
|
|
{
|
|
AudioManager.Instance.SetMusicOn(SettingData.Instance.IsMusicOn);
|
|
AudioManager.Instance.SetSoundOn(SettingData.Instance.IsSoundOn);
|
|
|
|
PanelGame tUIGame = UIManager.Instance.OpenUI<PanelGame>();
|
|
tUIGame.Init();
|
|
|
|
mFilm = Instantiate(ResourceManager.Instance.LoadRes<Film>(Const.Path.GetFilm(PlayerData.Instance.CurrentLevelID)));
|
|
mFilm.transform.SetParent(mCtnStage);
|
|
mFilm.transform.localPosition = Vector3.zero;
|
|
mFilm.transform.localScale = Vector3.one;
|
|
|
|
tUIGame.DelPlay = PlayFilm;
|
|
}
|
|
|
|
private void PlayFilm(int[] pSoundOrder)
|
|
{
|
|
mSoundOrder = pSoundOrder;
|
|
|
|
mEndingStr = "";
|
|
for (int i = 0; i < mSoundOrder.Length; i++)
|
|
{
|
|
mEndingStr += (mSoundOrder[i] + 1).ToString();
|
|
if (i < mSoundOrder.Length - 1)
|
|
{
|
|
mEndingStr += "_";
|
|
}
|
|
}
|
|
|
|
mFilm.PlayScene(mEndingStr);
|
|
|
|
mCurIndex = 0;
|
|
AudioManager.Instance.PlaySound(ResourceManager.Instance.LoadRes<AudioClip>(Const.Path.GetSound(PlayerData.Instance.CurrentLevelID, mSoundOrder[mCurIndex])));
|
|
TimerManager.Instance.Schedule(PlaySound, 1.5f, mSoundOrder.Length);
|
|
}
|
|
|
|
private void PlaySound()
|
|
{
|
|
mCurIndex++;
|
|
if (mCurIndex < mSoundOrder.Length)
|
|
{
|
|
AudioManager.Instance.PlaySound(ResourceManager.Instance.LoadRes<AudioClip>(Const.Path.GetSound(PlayerData.Instance.CurrentLevelID, mSoundOrder[mCurIndex])));
|
|
}
|
|
else
|
|
{
|
|
//end
|
|
LevelData tLvData = GameConfig.Instance.GetLevelData(PlayerData.Instance.CurrentLevelID);
|
|
int tEndingID = tLvData.GetMatchingEndingID(mEndingStr.Replace("_",""));
|
|
|
|
UIManager.Instance.CloseUI<PanelGame>();
|
|
|
|
PanelResult tUIResult = UIManager.Instance.OpenUI<PanelResult>();
|
|
if (tEndingID >= 0)
|
|
{
|
|
PlayerData.Instance.AddEnding(PlayerData.Instance.CurrentLevelID, tEndingID);
|
|
PlayerData.Instance.UnlockNewLevel();
|
|
|
|
EndingData tEdData = tLvData.Endings[tEndingID];
|
|
tUIResult.Init(PlayerData.Instance.CurrentLevelID, tEdData.EndingName, tEdData.IsGoodEnding, false);
|
|
}
|
|
else
|
|
{
|
|
tUIResult.Init(PlayerData.Instance.CurrentLevelID, "", false, false);
|
|
}
|
|
|
|
tUIResult.DelAgain = PlayAgain;
|
|
}
|
|
}
|
|
|
|
private void PlayAgain()
|
|
{
|
|
UIManager.Instance.CloseUI<PanelResult>();
|
|
|
|
PanelGame tUIGame = UIManager.Instance.OpenUI<PanelGame>();
|
|
tUIGame.Init();
|
|
|
|
mFilm.PlayScene("0");
|
|
}
|
|
} |