|
@@ -5,6 +5,8 @@ using System.Collections.Generic;
|
|
|
using System;
|
|
|
using UnityEngine;
|
|
|
using System.Collections;
|
|
|
+using Live2D.Cubism.Rendering;
|
|
|
+using DG.Tweening;
|
|
|
|
|
|
namespace GFGGame
|
|
|
{
|
|
@@ -13,15 +15,23 @@ namespace GFGGame
|
|
|
private GComponent _com;
|
|
|
// private UI_ComModel _comModel;
|
|
|
private DressUpObjUI _dressUpObjUI;
|
|
|
+ private DressUpObjUI _dressUpObjUI2;
|
|
|
+
|
|
|
private LuckyBoxCfg _luckyBoxCfg;
|
|
|
private const int _turnTime = 8;
|
|
|
private int _curTime = _turnTime;
|
|
|
private int _bgIndex = 0;
|
|
|
private int _modelIndex = 0;
|
|
|
+ private List<DressUpObjUI> _dressUpObjUIs = new List<DressUpObjUI>(2);
|
|
|
|
|
|
public LuckyBoxController(GComponent comModel)
|
|
|
{
|
|
|
_dressUpObjUI = new DressUpObjUI("SceneDressUp");
|
|
|
+ _dressUpObjUI2 = new DressUpObjUI("SceneDressUp");
|
|
|
+
|
|
|
+ _dressUpObjUIs.Add(_dressUpObjUI);
|
|
|
+ _dressUpObjUIs.Add(_dressUpObjUI2);
|
|
|
+
|
|
|
_com = comModel;
|
|
|
}
|
|
|
|
|
@@ -31,7 +41,9 @@ namespace GFGGame
|
|
|
_curTime = _turnTime;
|
|
|
_luckyBoxCfg = LuckyBoxCfgArray.Instance.GetCfg(luckyBoxId);
|
|
|
_com.GetChild("loaMask").asLoader.url = ResPathUtil.GetBgImgPath(_luckyBoxCfg.bgResArr[_bgIndex]);
|
|
|
+ InitDressUpObj();
|
|
|
ChangeRes();
|
|
|
+ InitModel();
|
|
|
Timers.inst.Remove(UpdateTime);
|
|
|
if (_luckyBoxCfg.resArr.Length > 1 || _luckyBoxCfg.suitIdArr.Length > 1)
|
|
|
{
|
|
@@ -52,24 +64,27 @@ namespace GFGGame
|
|
|
_modelIndex = _modelIndex + 1 == _luckyBoxCfg.suitIdArr.Length ? 0 : _modelIndex + 1;
|
|
|
}
|
|
|
|
|
|
- _com.GetTransition("t0").Play(ChangeRes);
|
|
|
- // ChangeRes();
|
|
|
+ HideModel();
|
|
|
+ UpdateIndex();
|
|
|
+ ChangeRes();
|
|
|
+ //_com.GetTransition("t0").Play(ChangeRes);
|
|
|
}
|
|
|
- // private void UpdateRes()
|
|
|
- // {
|
|
|
- // Timers.inst.StartCoroutine(ChangeRes());
|
|
|
- // }
|
|
|
+
|
|
|
+ private int index = 0;
|
|
|
+
|
|
|
private void ChangeRes()
|
|
|
{
|
|
|
UI_ComModel _comModel = UI_ComModel.Proxy(_com);
|
|
|
+
|
|
|
+ UI_ComModelRes comRes = _comModel.m_comModelRes;
|
|
|
_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);
|
|
|
+ comRes.m_loaRes.url = string.Format("ui://LuckyBox/{0}", _luckyBoxCfg.resArr[_modelIndex]);
|
|
|
+ comRes.m_loaRes.SetPosition(_luckyBoxCfg.posArr[_modelIndex][0], _luckyBoxCfg.posArr[_modelIndex][1], 1);
|
|
|
+ comRes.m_loaRes.SetScale(direction * scale, scale);
|
|
|
}
|
|
|
else if (_luckyBoxCfg.suitIdArr.Length > 0)
|
|
|
{
|
|
@@ -81,27 +96,24 @@ namespace GFGGame
|
|
|
if (_luckyBoxCfg.isAni == 0)
|
|
|
{
|
|
|
SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(_luckyBoxCfg.suitIdArr[_modelIndex]);
|
|
|
- _comModel.m_comModelRes.m_loaRes.url = ResPathUtil.GetDressUpPath(suitCfg.aniRes);
|
|
|
-
|
|
|
+ comRes.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);
|
|
|
+ comRes.m_loaRes.SetScale(direction * scale, scale);
|
|
|
+ comRes.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;
|
|
|
+ comRes = (index == 0 ? _comModel.m_comModelRes : _comModel.m_comModelRes2);
|
|
|
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_loaMask.alpha = 1;
|
|
|
+ comRes.m_loaRes.url = "";
|
|
|
+ _dressUpObjUIs[index].UpdateWrapper(comRes.m_holder);
|
|
|
+ comRes.m_holder.SetPosition(_luckyBoxCfg.posArr[_modelIndex][0], _luckyBoxCfg.posArr[_modelIndex][1], 1);
|
|
|
+ _dressUpObjUIs[index].ResetSceneObj(scale, false, false, null, false);
|
|
|
+ _dressUpObjUIs[index].dressUpObj.PutOnSuitCfg(_luckyBoxCfg.suitIdArr[_modelIndex], true, new int[] { ConstDressUpItemType.BEI_JING }, false, false);
|
|
|
+ _dressUpObjUIs[index].sceneObject.transform.localScale = new Vector3(direction * scale, scale, scale);
|
|
|
}
|
|
|
}
|
|
|
- _comModel.m_t1.Play();
|
|
|
UI_ComModel.ProxyEnd();
|
|
|
}
|
|
|
|
|
@@ -124,5 +136,94 @@ namespace GFGGame
|
|
|
_dressUpObjUI = null;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void UpdateIndex()
|
|
|
+ {
|
|
|
+ index ^= 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ private CubismRenderController[] cubismModels;
|
|
|
+ private List<SpriteRenderer> spriteRenderers = new List<SpriteRenderer>();
|
|
|
+ private void InitModel()
|
|
|
+ {
|
|
|
+ Transform model = _dressUpObjUIs[index].sceneObject.transform.Find("Role");
|
|
|
+ cubismModels = model.GetComponentsInChildren<CubismRenderController>();
|
|
|
+ spriteRenderers = new List<SpriteRenderer>(model.GetComponentsInChildren<SpriteRenderer>());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ShowModel()
|
|
|
+ {
|
|
|
+ //InitModel();
|
|
|
+ int temp = 1 - index;
|
|
|
+ if (_dressUpObjUIs[temp].sceneObject == null)
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Transform model = _dressUpObjUIs[temp].sceneObject.transform.Find("Role");
|
|
|
+ cubismModels = model.GetComponentsInChildren<CubismRenderController>();
|
|
|
+ spriteRenderers = new List<SpriteRenderer>(model.GetComponentsInChildren<SpriteRenderer>());
|
|
|
+ //ChangeModelAlphaAnim(0, 1);
|
|
|
+ ChangeModelAlpha(1);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void HideModel()
|
|
|
+ {
|
|
|
+ ShowModel();
|
|
|
+ InitModel();
|
|
|
+ ChangeModelAlphaAnim(1, 0, ChangeComResLayer);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ChangeComResLayer()
|
|
|
+ {
|
|
|
+ UI_ComModel _comModel = UI_ComModel.Proxy(_com);
|
|
|
+ int index = _comModel.target.GetChildIndex(_comModel.m_comModelRes.target);
|
|
|
+ int index2 = _comModel.target.GetChildIndex(_comModel.m_comModelRes2.target);
|
|
|
+ _comModel.target.SetChildIndex(_comModel.m_comModelRes.target, index2);
|
|
|
+ _comModel.target.SetChildIndex(_comModel.m_comModelRes2.target, index);
|
|
|
+
|
|
|
+ UI_ComModel.ProxyEnd();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ChangeModelAlpha(float value)
|
|
|
+ {
|
|
|
+ for (int j = 0; j < cubismModels.Length; j++)
|
|
|
+ {
|
|
|
+ cubismModels[j].Opacity = value;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (int i = 0; i < spriteRenderers.Count; i++)
|
|
|
+ {
|
|
|
+ if (spriteRenderers[i] == null)
|
|
|
+ {
|
|
|
+ spriteRenderers.RemoveAt(i);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Color color = spriteRenderers[i].color;
|
|
|
+ color.a = value;
|
|
|
+ spriteRenderers[i].color = color;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void ChangeModelAlphaAnim(float start, float end, Action action = null)
|
|
|
+ {
|
|
|
+ Ease ease = start < end ? Ease.InQuad : Ease.OutQuad;
|
|
|
+ DOTween.To(() => start, (value) =>
|
|
|
+ {
|
|
|
+ ChangeModelAlpha(value);
|
|
|
+ }, end, 1f).SetEase(ease).OnComplete(() =>
|
|
|
+ {
|
|
|
+ action?.Invoke();
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void InitDressUpObj()
|
|
|
+ {
|
|
|
+ UI_ComModel _comModel = UI_ComModel.Proxy(_com);
|
|
|
+
|
|
|
+ _dressUpObjUI.UpdateWrapper(_comModel.m_comModelRes.m_holder);
|
|
|
+ _dressUpObjUI2.UpdateWrapper(_comModel.m_comModelRes2.m_holder);
|
|
|
+
|
|
|
+ UI_ComModel.ProxyEnd();
|
|
|
+ }
|
|
|
}
|
|
|
}
|