using UI.LuckyBox; using FairyGUI; using ET; using System.Collections.Generic; using System; using UnityEngine; using System.Collections; namespace GFGGame { public class LuckyBoxController { private GComponent _com; // private UI_ComModel _comModel; private DressUpObjUI _dressUpObjUI; private LuckyBoxCfg _luckyBoxCfg; private const int _turnTime = 8; private int _curTime = _turnTime; private int _bgIndex = 0; private int _modelIndex = 0; public LuckyBoxController(GComponent comModel) { _dressUpObjUI = new DressUpObjUI("SceneDressUp"); _com = comModel; } public void OnShown(int luckyBoxId) { // _comModel = UI_ComModel.Proxy(_com); _curTime = _turnTime; _luckyBoxCfg = LuckyBoxCfgArray.Instance.GetCfg(luckyBoxId); _com.GetChild("loaMask").asLoader.url = ResPathUtil.GetBgImgPath(_luckyBoxCfg.bgResArr[_bgIndex]); ChangeRes(); Timers.inst.Remove(UpdateTime); if (_luckyBoxCfg.resArr.Length > 1 || _luckyBoxCfg.suitIdArr.Length > 1) { Timers.inst.Add(_turnTime, 0, UpdateTime); } } private void UpdateTime(object param) { _com.GetChild("loaMask").asLoader.url = ResPathUtil.GetBgImgPath(_luckyBoxCfg.bgResArr[_bgIndex]); _bgIndex = _bgIndex + 1 == _luckyBoxCfg.bgResArr.Length ? 0 : _bgIndex + 1; if (_luckyBoxCfg.resArr.Length > 0) { _modelIndex = _modelIndex + 1 == _luckyBoxCfg.resArr.Length ? 0 : _modelIndex + 1; } else { _modelIndex = _modelIndex + 1 == _luckyBoxCfg.suitIdArr.Length ? 0 : _modelIndex + 1; } _com.GetTransition("t0").Play(ChangeRes); // ChangeRes(); } // private void UpdateRes() // { // Timers.inst.StartCoroutine(ChangeRes()); // } private void ChangeRes() { UI_ComModel _comModel = UI_ComModel.Proxy(_com); _comModel.m_loaBg.url = ResPathUtil.GetBgImgPath(_luckyBoxCfg.bgResArr[_bgIndex]); if (_luckyBoxCfg.resArr.Length > 0) { int direction = _luckyBoxCfg.scaleArr[_modelIndex] >= 0 ? 1 : -1; float scale = _luckyBoxCfg.scaleArr.Length > 0 ? Math.Abs(_luckyBoxCfg.scaleArr[_modelIndex]) / 10000f : 1; _comModel.m_comModelRes.m_loaRes.url = string.Format("ui://LuckyBox/{0}", _luckyBoxCfg.resArr[_modelIndex]); _comModel.m_comModelRes.m_loaRes.SetPosition(_luckyBoxCfg.posArr[_modelIndex][0], _luckyBoxCfg.posArr[_modelIndex][1], 1); _comModel.m_comModelRes.m_loaRes.SetScale(direction * scale, scale); } else if (_luckyBoxCfg.suitIdArr.Length > 0) { int direction = 1; if (_luckyBoxCfg.scaleArr.Length > 0) { direction = _luckyBoxCfg.scaleArr[_modelIndex] >= 0 ? 1 : -1; } if (_luckyBoxCfg.isAni == 0) { SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_luckyBoxCfg.suitIdArr[_modelIndex]); _comModel.m_comModelRes.m_loaRes.url = ResPathUtil.GetDressUpPath(suitCfg.aniRes); float scale = _luckyBoxCfg.scaleArr.Length > 0 ? Math.Abs(_luckyBoxCfg.scaleArr[_modelIndex]) / 10000f : 1; _comModel.m_comModelRes.m_loaRes.SetScale(direction * scale, scale); _comModel.m_comModelRes.m_loaRes.SetPosition(_luckyBoxCfg.posArr[_modelIndex][0], _luckyBoxCfg.posArr[_modelIndex][1], 1); } else { _comModel.m_comModelRes.m_loaRes.url = ""; _comModel.m_loaMask.alpha = 1; // yield return null; int scale = _luckyBoxCfg.scaleArr.Length > 0 ? Math.Abs(_luckyBoxCfg.scaleArr[_modelIndex]) / 10000 : 100; _dressUpObjUI.ResetSceneObj(scale, false, false, null, false); _dressUpObjUI.dressUpObj.PutOnSuitCfg(_luckyBoxCfg.suitIdArr[_modelIndex], true, new int[] { ConstDressUpItemType.BEI_JING }, false, false); _dressUpObjUI.UpdateWrapper(_comModel.m_comModelRes.m_holder); _dressUpObjUI.sceneObject.transform.localScale = new Vector3(direction * scale, scale, scale); _comModel.m_comModelRes.m_holder.SetPosition(_luckyBoxCfg.posArr[_modelIndex][0], _luckyBoxCfg.posArr[_modelIndex][1], 1); // yield return null; } } _comModel.m_t1.Play(); UI_ComModel.ProxyEnd(); } public void OnHide() { _bgIndex = 0; _modelIndex = 0; _dressUpObjUI.ResetSceneObj(0, false, false, null, false); UI_ComModel _comModel = UI_ComModel.Proxy(_com); _comModel.m_comModelRes.m_loaRes.url = ""; UI_ComModel.ProxyEnd(); Timers.inst.Remove(UpdateTime); } public void Dispose() { if (_dressUpObjUI != null) { _dressUpObjUI.Dispose(); _dressUpObjUI = null; } } } }