You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
308 lines
10 KiB
308 lines
10 KiB
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<RendereSpareControl>
|
|
{
|
|
|
|
public List<SpareRendererType> spareRendererTypes;
|
|
|
|
public List<SpareRenderContainerInfo> 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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 显示商店零件
|
|
/// </summary>
|
|
/// <param name="type"></param>
|
|
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<RendererSpare>();
|
|
if (renderer != null)
|
|
{
|
|
renderer.SelectStoreRSpare();
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 显示商店零件
|
|
/// </summary>
|
|
/// <param name="info"></param>
|
|
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<RendererSpare>();
|
|
if (renderer != null)
|
|
{
|
|
renderer.SelectStoreRSpare();
|
|
}
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 隐藏商店零件
|
|
/// </summary>
|
|
public void HideStoreSpareRenderer()
|
|
{
|
|
|
|
if (curSpareRen != null && curSpareRen.targetGo != null)
|
|
{
|
|
RendererSpare renderer = curSpareRen.targetGo.GetComponent<RendererSpare>();
|
|
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<RendererSpare>();
|
|
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);
|
|
});
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 显示零件渲染
|
|
/// </summary>
|
|
/// <param name="type"></param>
|
|
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<RendererSpare>();
|
|
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<SparePlatformView>(type);
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 显示零件渲染
|
|
/// </summary>
|
|
/// <param name="info">零件信息</param>
|
|
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<RendererSpare>();
|
|
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<SparePlatformView>(info.type);
|
|
MessageContainer.SendMessage(info.simpleInfoStr,this,MsgName.TipViewShowSparePlatform);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 隐藏零件渲染
|
|
/// </summary>
|
|
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<RendererSpare>();
|
|
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<SparePlatformView>();
|
|
|
|
//打开零件背包
|
|
LzFramework.UI.TTUIPage.ShowPage<SparePartsView>(false);
|
|
|
|
MessageContainer.SendMessage(curSpareRen.type, this, MsgName.SparePartsViewAddSpare, 0.25f);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
if (curContainer != null && curContainer.curRendererGo != null)
|
|
{
|
|
|
|
RendererSpare renderer = curContainer.curRendererGo.GetComponent<RendererSpare>();
|
|
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<SparePlatformView>();
|
|
|
|
//打开零件背包
|
|
LzFramework.UI.TTUIPage.ShowPage<SparePartsView>(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;
|
|
|
|
}
|
|
}
|
|
|