2023-03-01 18:05:42 +08:00
|
|
|
|
using SHADE;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
|
|
|
|
|
namespace SHADE_Scripting.UI
|
2023-03-01 18:05:42 +08:00
|
|
|
|
{
|
2023-03-02 17:33:02 +08:00
|
|
|
|
public class PreviewLevel : Script
|
|
|
|
|
{
|
|
|
|
|
private List<Camera> listOfCamera;
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
public Vector3 endPoint1;
|
|
|
|
|
public Vector3 endPoint2;
|
|
|
|
|
public Vector3 endPoint3;
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
public GameObject playerCamera;
|
2023-03-05 23:48:25 +08:00
|
|
|
|
public GameObject gameplayCanvas;
|
2023-03-02 17:33:02 +08:00
|
|
|
|
public float duration = 3.0f;
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
private bool point1Done = false;
|
|
|
|
|
private bool point2Done = false;
|
|
|
|
|
private bool point3Done = false;
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
private bool reset2 = true;
|
|
|
|
|
private bool reset3 = true;
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
private bool skip = false;
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
private TweenThreadVec3 moveToEndPoint1;
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
private TweenThreadVec3 moveToEndPoint2;
|
|
|
|
|
[NonSerialized]
|
|
|
|
|
private TweenThreadVec3 moveToEndPoint3;
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
protected override void awake()
|
|
|
|
|
{
|
|
|
|
|
listOfCamera = GameObject.GetComponentsInChildren<Camera>().ToList();
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
if (listOfCamera.Count == 0)
|
|
|
|
|
Debug.LogError("EMPTY PREVIEW POINTS");
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 02:51:11 +08:00
|
|
|
|
protected override void start()
|
|
|
|
|
{
|
2023-03-05 23:48:25 +08:00
|
|
|
|
if (gameplayCanvas)
|
|
|
|
|
gameplayCanvas.SetActive(false);
|
2023-03-05 02:51:11 +08:00
|
|
|
|
listOfCamera[0].SetMainCamera();
|
2023-03-09 00:33:36 +08:00
|
|
|
|
|
|
|
|
|
moveToEndPoint1 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[0].GetComponent<Transform>().LocalPosition, endPoint1, EASING_METHOD.EASE_IN_SINE);
|
|
|
|
|
moveToEndPoint2 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[1].GetComponent<Transform>().LocalPosition, endPoint2, EASING_METHOD.EASE_IN_SINE);
|
|
|
|
|
moveToEndPoint3 = TweenManager.CreateTweenThreadVec3(duration, listOfCamera[2].GetComponent<Transform>().LocalPosition, endPoint3, EASING_METHOD.EASE_IN_SINE);
|
|
|
|
|
|
2023-03-05 02:51:11 +08:00
|
|
|
|
}
|
|
|
|
|
|
2023-03-02 17:33:02 +08:00
|
|
|
|
protected override void update()
|
|
|
|
|
{
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (SceneFadeInOut.Instance && !SceneFadeInOut.Instance.FadeOutFinished() && !point1Done)
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
moveToEndPoint1.Reset();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-03 00:40:16 +08:00
|
|
|
|
if (Input.GetKeyUp(Input.KeyCode.Space) && !point3Done)
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
skip = true;
|
|
|
|
|
point1Done = true;
|
2023-03-05 02:51:11 +08:00
|
|
|
|
point3Done = true;
|
2023-03-02 17:33:02 +08:00
|
|
|
|
SceneFadeInOut.Instance.CallFadeIn();
|
|
|
|
|
SceneFadeInOut.Instance.alphaValue = 0.01f;
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (skip && SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished())
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
playerCamera.GetComponent<Camera>().SetMainCamera();
|
|
|
|
|
SceneFadeInOut.Instance.CallFadeOut();
|
|
|
|
|
}
|
2023-03-01 18:05:42 +08:00
|
|
|
|
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (skip && SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeOutFinished())
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
GameManager.Instance.PreviewLevelDone = true;
|
2023-03-05 23:48:25 +08:00
|
|
|
|
if (gameplayCanvas)
|
|
|
|
|
gameplayCanvas.SetActive(true);
|
2023-03-02 17:33:02 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!skip)
|
|
|
|
|
{
|
|
|
|
|
if (!point1Done)
|
|
|
|
|
{
|
|
|
|
|
listOfCamera[0].GetComponent<Transform>().LocalPosition = moveToEndPoint1.GetValue();
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (SceneFadeInOut.Instance && moveToEndPoint1.IsCompleted())
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
point1Done = true;
|
|
|
|
|
SceneFadeInOut.Instance.CallFadeIn();
|
|
|
|
|
SceneFadeInOut.Instance.alphaValue = 0.01f;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished() && point1Done)
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
listOfCamera[1].SetMainCamera();
|
|
|
|
|
SceneFadeInOut.Instance.CallFadeOut();
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeOutFinished() && point1Done)
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
if (!point2Done)
|
|
|
|
|
{
|
|
|
|
|
if (reset2)
|
|
|
|
|
{
|
|
|
|
|
moveToEndPoint2.Reset();
|
|
|
|
|
reset2 = false;
|
|
|
|
|
}
|
|
|
|
|
listOfCamera[1].GetComponent<Transform>().LocalPosition = moveToEndPoint2.GetValue();
|
|
|
|
|
if (moveToEndPoint2.IsCompleted())
|
|
|
|
|
{
|
|
|
|
|
point2Done = true;
|
|
|
|
|
SceneFadeInOut.Instance.CallFadeIn();
|
|
|
|
|
SceneFadeInOut.Instance.alphaValue = 0.01f;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished() && point2Done)
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
listOfCamera[2].SetMainCamera();
|
|
|
|
|
SceneFadeInOut.Instance.CallFadeOut();
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeOutFinished() && point2Done)
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
if (!point3Done)
|
|
|
|
|
{
|
|
|
|
|
if (reset3)
|
|
|
|
|
{
|
2023-03-09 00:33:36 +08:00
|
|
|
|
moveToEndPoint3.Reset();
|
2023-03-02 17:33:02 +08:00
|
|
|
|
reset3 = false;
|
|
|
|
|
}
|
|
|
|
|
listOfCamera[2].GetComponent<Transform>().LocalPosition = moveToEndPoint3.GetValue();
|
|
|
|
|
if (moveToEndPoint3.IsCompleted())
|
|
|
|
|
{
|
|
|
|
|
point3Done = true;
|
|
|
|
|
SceneFadeInOut.Instance.CallFadeIn();
|
|
|
|
|
SceneFadeInOut.Instance.alphaValue = 0.01f;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished() && point3Done)
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
playerCamera.GetComponent<Camera>().SetMainCamera();
|
|
|
|
|
SceneFadeInOut.Instance.CallFadeOut();
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-05 15:35:57 +08:00
|
|
|
|
if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeOutFinished() && point3Done)
|
2023-03-02 17:33:02 +08:00
|
|
|
|
{
|
|
|
|
|
GameManager.Instance.PreviewLevelDone = true;
|
2023-03-05 23:48:25 +08:00
|
|
|
|
if (gameplayCanvas)
|
|
|
|
|
gameplayCanvas.SetActive(true);
|
2023-03-02 17:33:02 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
2023-03-01 18:05:42 +08:00
|
|
|
|
}
|
|
|
|
|
|