using FairyGUI; using UI.Loading; using UnityEngine; namespace GFGGame { public class LoadingView : BaseWindow { private UI_LoadingView _ui; private const float SPEED = 0.01f; private string[] resNames = { "11", "33" }; private GameObject _effectObj; private GoWrapper _wrapper; private static LoadingView m_Instance = null; public static LoadingView Instance { get { if (m_Instance == null) { // m_Instance = new LauncherView(); m_Instance = ViewManager.GetUIView(typeof(LoadingView).Name) as LoadingView; } return m_Instance; } } public override void Dispose() { base.Dispose(); m_Instance = null; SceneController.DestroyObjectFromView(_effectObj, _wrapper); if (_ui != null) { _ui.Dispose(); _ui = null; } } protected override void OnInit() { base.OnInit(); packageName = UI_LoadingView.PACKAGE_NAME; _ui = UI_LoadingView.Create(); this.viewCom = _ui.target; isfullScreen = true; string resPath1 = ResPathUtil.GetViewEffectPath("ui_dljm", "ui_dljm_jdt_tw"); SceneController.AddObjectToView(null, null, _ui.m_holder, resPath1, out _effectObj, out _wrapper); } protected override void OnShown() { base.OnShown();//1;// SetProgress(0); int index = Random.Range(0, resNames.Length); _ui.m_loaBg.url = ResPathUtil.GetBgImgPath(resNames[index]); } protected override void OnHide() { base.OnHide(); } public void GetUI() { ET.Log.Debug("loadingui:" + _ui); } /// /// 设置描述文字 /// /// public void SetDesc(string desc, string descRight = "") { if (!ViewManager.isViewOpen(typeof(LoadingView).Name)) { return; } string str = string.Format("{0} {1}", desc, descRight);// + descRight; _ui.m_txtDescLeft.text = str; // _ui.m_txtDescLeft.text = desc ?? ""; // _ui.m_txtDescRight.text = descRight ?? ""; } /// /// 设置进度0-100 /// /// /// public void SetProgress(long progress, GTweenCallback callback = null) { if (!ViewManager.isViewOpen(typeof(LoadingView).Name)) { return; } double oldValule; GTweener twener = GTween.GetTween(_ui.m_progressBar1, TweenPropType.Progress); if (twener != null) { oldValule = twener.value.d; } else { oldValule = _ui.m_progressBar1.value; } if (progress < oldValule) { _ui.m_progressBar1.value = progress; float posX = _ui.m_progressBar1.width * (progress / 100) + _ui.m_progressBar1.x; _ui.m_imgAni.x = Mathf.Min(posX, _ui.m_progressBar1.width + _ui.m_progressBar1.x); callback?.Invoke(); } else { float duration = (float)(progress - oldValule) * SPEED; GTweener gtweener = _ui.m_progressBar1.TweenValue(progress, duration).OnUpdate((GTweener t) => { float posX = _ui.m_progressBar1.width * (t.value.x / 100) + _ui.m_progressBar1.x; _ui.m_imgAni.x = Mathf.Min(posX, _ui.m_progressBar1.width + _ui.m_progressBar1.x); }); if (callback != null) { gtweener.OnComplete(callback); } } callback?.Invoke(); } } }