using System.Collections; using System.Collections.Generic; using UnityEngine; using LzFramework; using System; using DG.Tweening; namespace DisComputer { /* * @func 映射3D零件 * @author lz * @data 2020/05/29 * */ public class RendereSpareControl : Singleton { public List spareRendererTypes; public List spareContainers; //圆盘 [SerializeField] private GameObject circlePlatGo; //圆盘缩放系数 private float circleScaleVal; private SpareRendererType curSpareRen; private RendererSpareContainer curContainer; private float curSpareScaleVal; // Start is called before the first frame update void Start() { circleScaleVal = circlePlatGo.transform.localScale.x; circlePlatGo.transform.localScale = Vector3.zero; circlePlatGo.SetActive(false); } public void ClearRendererSpare() { curSpareRen = null; curContainer = null; } /// /// 显示商店零件 /// /// public void ShowStoreSpareRenderer(SpareType type) { for (int i = 0; i < spareRendererTypes.Count; i++) { if (spareRendererTypes[i].type == type) { spareRendererTypes[i].targetGo.SetActive(true); curSpareScaleVal = spareRendererTypes[i].targetGo.transform.localScale.x; curSpareRen = spareRendererTypes[i]; if (curSpareRen != null) { RendererSpare renderer = curSpareRen.targetGo.GetComponent(); if (renderer != null) { renderer.SelectStoreRSpare(); } } break; } } } /// /// 显示商店零件 /// /// public void ShowStoreSpareRenderer(SpareInfo info) { //string strinfo = Newtonsoft.Json.JsonConvert.SerializeObject(info); //Debug.LogFormat(">>>>>>>>>>>>>>>>>>> show store {0}", strinfo); for (int i = 0; i < spareContainers.Count; i++) { //Debug.LogFormat("spareContainers[i].type {0} info.type {1} ", spareContainers[i].type, info.type); if (spareContainers[i].type == info.type) { curContainer = spareContainers[i].container; curContainer.SelectSpareRenderGo(info); curSpareScaleVal = curContainer.curRendererGo.transform.localScale.x; if (curContainer.curRendererGo != null) { RendererSpare renderer = curContainer.curRendererGo.GetComponent(); if (renderer != null) { renderer.SelectStoreRSpare(); } } break; } } } /// /// 隐藏商店零件 /// public void HideStoreSpareRenderer() { if (curSpareRen != null && curSpareRen.targetGo != null) { RendererSpare renderer = curSpareRen.targetGo.GetComponent(); if (renderer != null) { renderer.HideRSpare(); } curSpareRen.targetGo.transform.DOScale(Vector3.zero, 0.1f).SetEase(Ease.InSine).OnComplete(() => { curSpareRen.targetGo.SetActive(false); curSpareRen.targetGo.transform.localScale = new Vector3(curSpareScaleVal, curSpareScaleVal, curSpareScaleVal); }); } if (curContainer != null && curContainer.curRendererGo != null) { RendererSpare renderer = curContainer.curRendererGo.GetComponent(); if (renderer != null) { renderer.HideRSpare(); } curContainer.curRendererGo.transform.DOScale(Vector3.zero, 0.1f).SetEase(Ease.InSine).OnComplete(() => { curContainer.curRendererGo.SetActive(false); curContainer.curRendererGo.transform.localScale = new Vector3(curSpareScaleVal, curSpareScaleVal, curSpareScaleVal); }); } } /// /// 显示零件渲染 /// /// public void ShowSpareRenderer(SpareType type) { for(int i = 0;i< spareRendererTypes.Count; i++) { if(spareRendererTypes[i].type == type) { spareRendererTypes[i].targetGo.SetActive(true); curSpareScaleVal = spareRendererTypes[i].targetGo.transform.localScale.x; curSpareRen = spareRendererTypes[i]; if (curSpareRen != null) { RendererSpare renderer = curSpareRen.targetGo.GetComponent(); if (renderer != null) { renderer.SelectRSpare(); } } circlePlatGo.gameObject.SetActive(true); circlePlatGo.transform.DOScale(new Vector3(circleScaleVal, circleScaleVal, circleScaleVal),0.25f).SetEase(Ease.InSine); LzFramework.UI.TTUIPage.ShowPage(type); break; } } } /// /// 显示零件渲染 /// /// 零件信息 public void ShowSpareRenderer(SpareInfo info) { for (int i = 0; i < spareContainers.Count; i++) { if (spareContainers[i].type == info.type) { curContainer = spareContainers[i].container; curContainer.SelectSpareRenderGo(info); curSpareScaleVal = curContainer.curRendererGo.transform.localScale.x; if (curContainer != null) { RendererSpare renderer = curContainer.curRendererGo.GetComponent(); if (renderer != null) { renderer.SelectRSpare(); } } circlePlatGo.gameObject.SetActive(true); circlePlatGo.transform.DOScale(new Vector3(circleScaleVal, circleScaleVal, circleScaleVal), 0.25f).SetEase(Ease.InSine); LzFramework.UI.TTUIPage.ShowPage(info.type); MessageContainer.SendMessage(info.simpleInfoStr,this,MsgName.TipViewShowSparePlatform); break; } } } /// /// 隐藏零件渲染 /// public void HideSpareRenderer() { circlePlatGo.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InSine).OnComplete(()=> { circlePlatGo.SetActive(false); }); if (curSpareRen != null && curSpareRen.targetGo != null) { RendererSpare renderer = curSpareRen.targetGo.GetComponent(); if (renderer != null) { renderer.HideRSpare(); } MessageContainer.SendMessage(null, this, MsgName.TipViewHideSparePlatform); curSpareRen.targetGo.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InSine).OnComplete(() => { curSpareRen.targetGo.SetActive(false); curSpareRen.targetGo.transform.localScale = new Vector3(curSpareScaleVal, curSpareScaleVal, curSpareScaleVal); LzFramework.UI.TTUIPage.ClosePage(); //打开零件背包 LzFramework.UI.TTUIPage.ShowPage(false); MessageContainer.SendMessage(curSpareRen.type, this, MsgName.SparePartsViewAddSpare, 0.25f); }); } if (curContainer != null && curContainer.curRendererGo != null) { RendererSpare renderer = curContainer.curRendererGo.GetComponent(); if (renderer != null) { renderer.HideRSpare(); } MessageContainer.SendMessage(null, this, MsgName.TipViewHideSparePlatform); curContainer.curRendererGo.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InSine).OnComplete(() => { curContainer.curRendererGo.SetActive(false); curContainer.curRendererGo.transform.localScale = new Vector3(curSpareScaleVal, curSpareScaleVal, curSpareScaleVal); LzFramework.UI.TTUIPage.ClosePage(); //打开零件背包 LzFramework.UI.TTUIPage.ShowPage(false); MessageContainer.SendMessage(curContainer.curSpareInfo, this, MsgName.SparePartsViewAddSpare, 0.25f); }); } } } [Serializable] public class SpareRendererType { public SpareType type; public GameObject targetGo; } [Serializable] public class SpareRenderContainerInfo { public SpareType type; public RendererSpareContainer container; } }