zxl
/
CTT
forked from Cal/CTT
1
0
Fork 0
CTT/Unity/Assets/ModelView/Mono/UpdateScreen.cs

134 lines
4.1 KiB
C#
Raw Normal View History

2021-04-08 20:09:59 +08:00
//
// UpdateScreen.cs
//
// Author:
// fjy <jiyuan.feng@live.com>
//
// Copyright (c) 2020 fjy
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using ET;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
namespace libx
{
public class UpdateScreen : MonoBehaviour, IUpdater
{
public Text version;
public Slider progressBar;
public Text progressText;
public Button btnStart;
public Button btnClear;
private void Start()
{
version.text = "APP: 4.0\nRES1";
2021-04-11 19:50:39 +08:00
Updater updater = Game.Scene.GetComponent<Updater>();
2021-04-08 20:09:59 +08:00
updater.listener = this;
btnStart.onClick.AddListener(() =>
{
updater.StartUpdate();
});
btnClear.onClick.AddListener(() =>
{
updater.OnClear();
});
}
private void DelRes(string dir)
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
{
FileInfo fi = new FileInfo(d);
if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1)
fi.Attributes = FileAttributes.Normal;
File.Delete(d);//直接删除其中的文件
}
else
{
DirectoryInfo d1 = new DirectoryInfo(d);
if (d1.GetFiles().Length != 0)
{
DelRes(d1.FullName);////递归删除子文件夹
}
Directory.Delete(d, true);
}
}
}
private void DelSomeRes(string path, int count)
{
#if UNITY_STANDALONE
path += "/TTL";
FileInfo[] files = new DirectoryInfo(path).GetFiles();
List<FileInfo> list = new List<FileInfo>(files);
list.Sort(new Comparison<FileInfo>(delegate (FileInfo a, FileInfo b)
{
return -a.LastWriteTime.CompareTo(b.LastWriteTime);
}));
foreach (FileInfo f in list)
{
if (count <= 0) return;
count--;
File.Delete(f.FullName);
}
#endif
}
#region IUpdateManager implementation
public void OnStart()
{
btnStart.gameObject.SetActive(false);
}
public void OnMessage(string msg)
{
progressText.text = msg;
}
public void OnProgress(float progress)
{
progressBar.value = progress;
}
public void OnVersion(string ver)
{
version.text = $"客户端版本号:{GlobalConfigComponent.Instance.GlobalProto.ClientVersion}\nres:{ver}";
}
public void OnClear()
{
btnStart.gameObject.SetActive(true);
}
#endregion
}
}