//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, September 05, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
|
public class LaunchWin : UIBase
|
{
|
[SerializeField] UIAlphaTween m_AlphaTween;
|
[SerializeField] Image m_BackGround;
|
[SerializeField] RectTransform m_AndroidProgressContainer;
|
[SerializeField] RectTransform m_NetworkContainer;
|
[SerializeField] SmoothSlider m_PartProgressSlider;
|
[SerializeField] SmoothSlider m_TotalProgressSlider;
|
[SerializeField] Text m_StageDescription;
|
[SerializeField] RectTransform m_IosProgressContainer;
|
[SerializeField] Text m_IosProgressTip;
|
[SerializeField] Text m_BuildTime;
|
[SerializeField] Text m_Version;
|
[SerializeField] Button m_UserHelp;
|
|
bool assetBuildTimeShowed = false;
|
|
LaunchStage showStage = LaunchStage.None;
|
int showStep = 0;
|
string stepDescription = string.Empty;
|
|
float backGroundTimer = 0f;
|
int backGroundIndex = 0;
|
List<Sprite> backGrounds = new List<Sprite>();
|
|
int AllTimes = 0;
|
int WaitSeconds = 0;
|
bool ShowCircleView = false;
|
float TempCheck = 0;
|
protected override void InitComponent()
|
{
|
m_BackGround.preserveAspect = true;
|
if (Application.isEditor)
|
{
|
var sprite = BuiltInLoader.LoadSprite("Launch_1");
|
m_BackGround.overrideSprite = sprite;
|
}
|
else
|
{
|
for (var i = 0; i < 3; i++)
|
{
|
var sprite = BuiltInLoader.LoadSprite(StringUtility.Contact("Launch_", i + 1));
|
if (sprite != null)
|
{
|
backGrounds.Add(sprite);
|
}
|
}
|
|
m_BackGround.overrideSprite = backGrounds[0];
|
}
|
|
|
// AddListener
|
if (m_UserHelp)
|
{
|
m_UserHelp.SetListener(OpenUserHelp);
|
}
|
}
|
|
protected override void OnPreOpen()
|
{
|
backGroundTimer = 0f;
|
backGroundIndex = 0;
|
if (m_TotalProgressSlider != null)
|
{
|
m_TotalProgressSlider.ResetValue(0f);
|
}
|
|
m_AlphaTween.SetStartState();
|
|
m_BuildTime.text = VersionConfig.Get().debugVersion ? VersionConfig.Get().buildTime : "";
|
|
if (m_UserHelp)
|
{
|
var appId = VersionConfig.Get().appId;
|
var branch = VersionConfig.Get().branch;
|
//m_UserHelp.SetActive(ContactConfig.GetConfig(appId, branch) != null);
|
m_UserHelp.SetActive(false);
|
}
|
if (m_NetworkContainer != null)
|
{
|
m_NetworkContainer.SetActive(false);
|
}
|
|
var AppleCheck = InitialFunctionConfig.Get("CheckTime").Numerical1;
|
var AndroidCheck = InitialFunctionConfig.Get("CheckTime").Numerical2;
|
var CheckAll = InitialFunctionConfig.Get("NetworkCheck").Numerical1;
|
AllTimes = int.Parse(CheckAll);
|
var CheckTime = InitialFunctionConfig.Get("NetworkCheck").Numerical2;
|
WaitSeconds = int.Parse(CheckTime);
|
ShowCircleView = false;
|
if (Application.platform == RuntimePlatform.IPhonePlayer && AppleCheck == "1")
|
ShowCircleView = true;
|
if (Application.platform == RuntimePlatform.Android && AndroidCheck == "1")
|
ShowCircleView = true;
|
|
if (ShowCircleView)
|
{
|
m_AndroidProgressContainer.SetActive(false);
|
m_IosProgressContainer.SetActive(true);
|
m_Version.text = string.Empty;
|
}
|
else
|
{
|
m_AndroidProgressContainer.SetActive(true);
|
m_IosProgressContainer.SetActive(false);
|
m_Version.text = StringUtility.Contact(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex, Language.Id);
|
}
|
|
if (m_StageDescription != null)
|
{
|
m_StageDescription.text = GetLaunchStageDescription(showStage, showStep);
|
}
|
|
UpdateProgress();
|
|
if (m_TotalProgressSlider == null)
|
{
|
m_TotalProgressSlider = this.GetComponentInChildren<SmoothSlider>(true);
|
}
|
}
|
|
protected override void OnOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnClose()
|
{
|
|
}
|
|
public void FadeOut()
|
{
|
m_AlphaTween.Play();
|
}
|
|
string GetLaunchStageDescription(LaunchStage _stage, int step)
|
{
|
switch (_stage)
|
{
|
case LaunchStage.SDKInit:
|
return Language.GetFromLocal(36);
|
case LaunchStage.AssetCopy:
|
return StringUtility.Contact(Language.GetFromLocal(37), "(", step, ")");
|
case LaunchStage.AssetDecompress:
|
return StringUtility.Contact(Language.GetFromLocal(38), "(", step, ")");
|
case LaunchStage.ClientVersion:
|
return Language.GetFromLocal(39);
|
case LaunchStage.CheckAsset:
|
return Language.GetFromLocal(40);
|
case LaunchStage.DownLoad:
|
return Language.GetFromLocal(41);
|
case LaunchStage.AssetBundleInit:
|
return Language.GetFromLocal(42);
|
case LaunchStage.ConfigInit:
|
return StringUtility.Contact(Language.GetFromLocal(43), "(", step, ")");
|
case LaunchStage.Complete:
|
return Language.GetFromLocal(44);
|
default:
|
return "";
|
}
|
}
|
|
protected void LateUpdate()
|
{
|
UpdateProgress();
|
|
backGroundTimer += Time.deltaTime;
|
if (backGroundTimer >= 3f)
|
{
|
backGroundTimer = 0f;
|
if (backGrounds.Count > 1)
|
{
|
m_BackGround.overrideSprite = backGrounds[(++backGroundIndex) % backGrounds.Count];
|
}
|
}
|
|
if (HttpBehaviour.ConnectAllTimes >= AllTimes && m_NetworkContainer != null)
|
{
|
TempCheck += Time.deltaTime;
|
m_NetworkContainer.SetActive(true);
|
if (TempCheck >= WaitSeconds)
|
{
|
TempCheck = 0;
|
m_NetworkContainer.SetActive(false);
|
HttpBehaviour.ConnectAllTimes = 0;
|
}
|
}
|
}
|
|
private void OpenUserHelp()
|
{
|
// TODO YYL
|
// UIManager.Instance.OpenWindow<UserHelpWin>();
|
}
|
|
private void UpdateProgress()
|
{
|
//if (Application.platform == RuntimePlatform.IPhonePlayer)
|
if(ShowCircleView)
|
{
|
m_IosProgressContainer.SetActive(LaunchInHot.progressInfo.stage != LaunchStage.DownLoad);
|
var remainder = ((int)Time.time) % 3;
|
var dot = remainder == 0 ? "." : remainder == 1 ? ".." : "...";
|
m_IosProgressTip.text = StringUtility.Contact(Language.GetFromLocal(30), dot);
|
}
|
else
|
{
|
var progressInfo = LaunchInHot.progressInfo;
|
|
if (progressInfo.stage == LaunchStage.DownLoad)
|
{
|
if (m_PartProgressSlider != null && m_PartProgressSlider.gameObject.activeInHierarchy)
|
{
|
m_PartProgressSlider.SetActive(false);
|
}
|
|
if (m_TotalProgressSlider != null && m_TotalProgressSlider.gameObject.activeInHierarchy)
|
{
|
m_TotalProgressSlider.SetActive(false);
|
}
|
}
|
else
|
{
|
if (m_PartProgressSlider != null && !m_PartProgressSlider.gameObject.activeInHierarchy)
|
{
|
m_PartProgressSlider.SetActive(true);
|
}
|
|
if (m_TotalProgressSlider != null && !m_TotalProgressSlider.gameObject.activeInHierarchy)
|
{
|
m_TotalProgressSlider.SetActive(true);
|
}
|
|
if (m_TotalProgressSlider != null)
|
{
|
m_TotalProgressSlider.value = progressInfo.totalProgress;
|
}
|
|
if (m_PartProgressSlider != null)
|
{
|
m_PartProgressSlider.value = progressInfo.partProgress;
|
}
|
}
|
|
DisplayStageDescription(progressInfo.stage, progressInfo.step);
|
|
//if (!assetBuildTimeShowed && AssetVersionUtility.assetsBuildTime != DateTime.MinValue)
|
//{
|
// assetBuildTimeShowed = true;
|
// var totalMinute = (int)(AssetVersionUtility.assetsBuildTime - new DateTime(2018, 1, 1)).TotalMinutes;
|
// m_Version.text = StringUtility.Contact(VersionConfig.Get().version, "_", VersionConfig.Get().buildIndex, "_", totalMinute.ToString());
|
//}
|
}
|
|
}
|
|
private void DisplayStageDescription(LaunchStage stage, int step)
|
{
|
if (showStage != stage || showStep != step)
|
{
|
showStage = stage;
|
showStep = step;
|
if (m_StageDescription != null)
|
{
|
m_StageDescription.text = GetLaunchStageDescription(stage, step);
|
}
|
}
|
}
|
|
}
|